Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.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 - Fatal编程技术网

整数格式的MATLAB矩阵单元索引,而不是行和列格式

整数格式的MATLAB矩阵单元索引,而不是行和列格式,matlab,matrix,Matlab,Matrix,在MATLAB中,矩阵单元按其行和列位置进行编号。我想用整数做索引 考虑一个(3,4)矩阵 但是,当遍历每个单元格时,我期望的输出是 for i=1:length(3) for j =1:length(4) fprint(i+j+something) end end 1 2 3 4 . . 12 这称为线性索引。您可以使用该函数将行数和列数转换为线性索引,也可以使用其他方法 index = sub2ind(size(M),i,j); M(i,j) == M(index) su

在MATLAB中,矩阵单元按其行和列位置进行编号。我想用整数做索引

考虑一个(3,4)矩阵

但是,当遍历每个单元格时,我期望的输出是

for i=1:length(3)
  for j =1:length(4)
    fprint(i+j+something)
  end
end
1
2
3
4
.
.
12
这称为线性索引。您可以使用该函数将行数和列数转换为线性索引,也可以使用其他方法

index = sub2ind(size(M),i,j);
M(i,j) == M(index)

sub2ind
对二维矩阵应用的公式是
index=i+(j-1)*size(M,1)
。也就是说,数字沿着第一列向下增加,然后是第二列,以此类推。

我有个问题。一个简单的代码让我很烦恼。这是我的代码:
对于i=1:length(3)对于j=1:length(3)n=sub2ind(size(Rld),i,j);fprintf('%i\n',n)end end end
由于未知原因,它只打印
1
,而不打印
1..9
。你知道这里可能出了什么问题吗。@trandle:
length(3)
是1。您想对i=1:3执行
。。我现在明白了。这是一个简单而重大的错误。非常感谢。索引实际上被设置为
index=i+(j-1)*大小(M,1)
@JorenV:谢谢你指出错误。这回答了你的问题吗?
index = sub2ind(size(M),i,j);
M(i,j) == M(index)