Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 获取矩阵大小错误,即使大小正确_Matlab_Matrix_Size - Fatal编程技术网

Matlab 获取矩阵大小错误,即使大小正确

Matlab 获取矩阵大小错误,即使大小正确,matlab,matrix,size,Matlab,Matrix,Size,有人能帮我解决一个问题吗。我有4列变量x,y,u和v 我使用以下代码将这些结果映射到等高线图上 crossflow = xlsread(filename, 'sheet3'); x = crossflow(2:1559,1); y = crossflow(2:1559,2); u = crossflow(2:1559,3); v = crossflow(2:1559,4); quiver(x,y,u,v) 但是我得到了错误 Index exceeds matrix dimensions.

有人能帮我解决一个问题吗。我有4列变量x,y,u和v

我使用以下代码将这些结果映射到等高线图上

crossflow = xlsread(filename, 'sheet3'); 
x = crossflow(2:1559,1);
y = crossflow(2:1559,2);
u = crossflow(2:1559,3);
v = crossflow(2:1559,4);
quiver(x,y,u,v)
但是我得到了错误

 Index exceeds matrix dimensions.

Error in VorticityCode066D (line 38)
x = crossflow(2:1559,1);
我的问题是x,y,u和v都是38x41矩阵,这是正确的大小。为什么我会犯这个错误?你好,杰

注释中的
whos

Name      Size    Bytes  Class 
U         38x41   12464  double 
V         38x41   12464  double 
cav       38x41   12464  double 
crossflow 1558x50 623200 double
y         38x41   12464  double 
z         38x41   12464  double

答案在错误消息中。在线

x = crossflow(2:1559,1);
您得到错误“索引超过矩阵维度”,因为您的索引(您要求的是1559行和其他行)超过了矩阵的维度(根据
whos
输出,1558行可用)(
crossflow

请记住,Matlab中的索引是基于1的(与大多数编程语言不同),因此1558行矩阵的第一行和最后一行分别具有索引1和1558。此外,像
2:1559
这样的范围在两端都包含在内(如果您熟悉Python,则与Python不同)


作为旁注,您可以使用标记
end
作为索引。如果你的意思是“除了第一行之外,取整个第一列”,你可以说
crossflow(2:end,1)
。这可以节省您将今天的
交叉流的大小硬编码到明天可能需要使用的脚本中。

在调用xlsread之后,您可以显示“whos”的输出吗?以下是输出“Name size Bytes Class Attributes U 38x41 12464 double”V 38x41 12464双cav 38x41 12464双交叉流1558x50 623200双`名称大小字节类属性curlx 38x41 12464双数据1520x46 559360双图形手柄1x1 8双文件名1x122 244字符hd 1x1 8双涡度38x41 12464双x38x41 12464 double``Name Size Bytes Class Attributes y 38x41 12464 double z 38x41 12464 double`这就是为什么要在原始问题中添加这样的内容,而不是把它放在评论里。而
交叉流的大小是造成问题的原因之一。