当我使用基于另一个变量(a)的标准时,我试图从变量(b)中接收所有值(它类似于excel中的= IF函数)。像这样:
示例:
(a):1 2 2 2 3 3 3 3
(b):3 6 3 5 6 4 5 4
我的标准是
(a) = 2
我的回复必须是:
(b) = 6 3 5
我尝试使用arrayfun找到解决方案,如下所示:
arrayfun(@(x) b(find(a == x, 1, 'first')), 2)
显然,它只回答6,第一个匹配标准的数字。我可以以某种方式正确地表达arrayfun吗?或者我还需要一个完整的其他功能吗?
谢谢!
答案 0 :(得分:1)
你不只是想要:
a = [ 1 2 2 2 3 3 3 3]
b = [3 6 3 5 6 4 5 4]
b(a == 2)
ans =
6 3 5
如果a是矩阵,那么:
a = [ 1 2 2 2 3 3 3 3; ...
1 1 1 2 2 3 4 4; ]
b = [3 6 3 5 6 4 5 4]
b(a(1,:)==2)
ans =
6 3 5