1

我有一个二维矩阵,我想遍历这个矩阵中的所有元素,如下所示:

a = 
0  1  2
5  4  3
6  7  8

for i = 1 : 81
    a(i) = ....
....

现在,例如当我使用时a(2),我收到“5”,但我想a(2)给我“1”。换句话说,我想使用行遍历而不是列的线性索引。

4

2 回答 2

2

要向下遍历数组,请尝试这样的操作。这里acol_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
于 2012-08-26T12:41:51.537 回答
1

Matlab 是列专业的,所以线性索引总是会先按列遍历。但是,您可以通过转置矩阵来轻松获得所需的效果,以便颠倒列和行。

于 2012-08-26T12:52:13.790 回答