将矢量作为其索引的函数处理/将此函数应用于另一个矢量(索引)

时间:2013-02-19 20:57:42

标签: matlab

y=[4;6;2;9;5;1]成为列向量,让i=[4,2,1]成为索引的向量。我想以某种方式“应用”我y并获得[9,6,4]。或至少[4;2;0;9;0;0]

使用for循环显然有一种方法可以做到这一点。我被这个网站上的某个人建议永远不要在MATLAB中使用for循环。我可以在这里使用一些逻辑运算符吗?理想情况下,可以将y视为其索引的函数,并将y应用于i 作为函数。这是可能的,还是应该使用旧的可靠的for循环?

1 个答案:

答案 0 :(得分:1)

简单:

y(i)

返回结果[9 6 4]

要将不属于index-list的所有元素设置为零,可以复制指定的元素:

out = zeros(size(y));
out(i) = y(i);