在MATLAB中,矩阵单元格按其行和列位置进行编号。我想用整数做索引。
考虑(3,4(矩阵
for i=1:length(3)
for j =1:length(4)
fprint(i,j)
end
end
1,1
1,2
.
.
3,4
然而,当迭代通过每个单元格时,我期望的输出是由给出的
for i=1:length(3)
for j =1:length(4)
fprint(i+j+something)
end
end
1
2
3
4
.
.
12
这被称为线性索引。您可以使用函数sub2ind
将行号和列号转换为线性索引,而ind2sub
则相反。
index = sub2ind(size(M),i,j);
M(i,j) == M(index)
由sub2ind
应用于2D矩阵的公式是index = i + (j-1) * size(M,1)
。也就是说,数字沿着第一列向下增加,然后是第二列,等等。