循环遍历Matrix的一部分

时间:2018-04-23 13:38:45

标签: for-loop matrix indexing octave

我有一个矩阵A.我想迭代矩阵的内部(B),同时也处理不属于B的行和列。

A = [1 4 5 6 7 1;    B = [2 2 2 2;
     8 2 2 2 2 1;         2 3 3 2;
     9 2 3 3 2 1;         2 8 2 2];
     0 2 8 2 2 1;      
     1 1 1 1 1 1];    

我知道可以像这样选择A的一部分:

[rows,columns] = size(A);
B = A([2:1:rows-1],[2:1:columns-1]);
for i = 1:(rows*columns)
    %do loop stuff
endfor

然而,这不会起作用,因为我还需要外部行和列来进行计算。如何在不改变A的情况下实现循环?

1 个答案:

答案 0 :(得分:1)

那么,为什么不为内部矩阵使用两个索引?

%....
for i=2:rows-1
    for j=2:cols-1
        % here, A(i,j) are the B elements, but you
        % can still access to A(i-1, j+1) if you want.
    end
end
%....