0

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

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

4

1 回答 1

1

简单的:

y(i)

返回你的结果[9 6 4]

要将不属于索引列表的所有元素设置为零,您可以复制指定的元素:

out = zeros(size(y));
out(i) = y(i);
于 2013-02-19T21:01:04.760 回答