我有矩阵A和矩阵B.我想根据B中的值得到A的值

时间:2013-01-13 21:57:09

标签: matlab

我有矩阵

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

有人可以帮我吗?

1 个答案:

答案 0 :(得分: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