-1

我有矩阵

A=magic(4)*10

和矩阵

B=[6 6 2 6;  1 1 2 1; 7 7 2 1; 3 3 -1 3 ]

我想获得A取决于B. 例如:

A=
160 20  30  130
50  110 100 80
90  70  60  120
40  140 150 10

B=
6   6   2   6
6   6   2   2
2   6   2   6
6   2   -1  2

我想从A(1,1)(值=160)开始。然后,如果 , 上的对应值BB(1,1) = 6我想得到右边的元素,A(1,2),如果B(1,1) = 2,我想得到下面的值,A(2,1)。最后,如果值为-1,我不想继续。最后我想得到这样的结果:

result=
160
20
30
100
60

任何人都可以帮助我吗?

4

1 回答 1

9

试试下面的代码:

% Inizialize matices
A=magic(4)*10;
B=[6 6 2 6;  1 1 2 1; 7 7 2 1; 3 3 -1 3 ];

% Inizialize internal variables
contin=1;
row=1;
column=1;
result=[];

while contin==1
    %append value
    result=[result A(row, column)];
    if B(row, column)==6
        column=column+1; %go to the right
    elseif B(row, column)==2
        row=row+1; %go down
    elseif B(row, column)==-1
        contin=0; %break
        result(end)=[]; %delete last value 
    end
end

result
于 2013-01-13T22:19:33.117 回答