我有一个二维矩阵,我想遍历这个矩阵中的所有元素,如下所示:
a =
0 1 2
5 4 3
6 7 8
for i = 1 : 81
a(i) = ....
....
现在,例如当我使用时a(2)
,我收到“5”,但我想a(2)
给我“1”。换句话说,我想使用行遍历而不是列的线性索引。
要向下遍历数组,请尝试这样的操作。这里a
有col_count
列和row_count
行
for j = 1:col_count
for i=1:row_count
a(i,j) %# display element at row i, column j
end
end
这将从第一列开始依次打印出您的元素,按行顺序打印该列中每一行的元素。这对每一列重复。
编辑:如果您必须使用单个索引,则只需使用当前的单个索引表示法,但对矩阵的转置进行操作:
b = a.'
for i = 1:size
b(i)
end
Matlab 是列专业的,所以线性索引总是会先按列遍历。但是,您可以通过转置矩阵来轻松获得所需的效果,以便颠倒列和行。