我有矩阵
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)。然后,如果B
,B(1,1) = 6
上的相应值,我想获取右侧的元素A(1,2)
,如果B(1,1) = 2
,我想获得价值在下面,A(2,1)
。最后,如果值为-1,我不想继续。最后我希望得到这样的结果:
result=
160
20
30
100
60
有人可以帮我吗?
答案 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