【发布时间】:2018-09-12 21:11:31
【问题描述】:
我有一个具有多个值的列向量,例如 100。我还有一个带有一些索引的向量,但它们是数字而不是逻辑值(我从另一个计算中得到它们)。假设这些值为 13、44、77。现在我想将这些指数的三个值增加 10%,并将其他所有值减少 10%。 最终我将使用循环连续增加/减少前一个向量的值,但暂时让我们说我只做一次。 我已经这样做了,但是通过一个 for 循环如下:(我的原始向量是 T,索引向量是 A)
P=[];
for k = 1:size(T,1)
if ismember(k,A)
q=T(k).*1.1;
else
q=T(k).*0.9;
end
P=[P;q];
end
这样我在 P 中得到了新的向量。我的问题是,有没有另一种更快、更有效的方法来做到这一点而无需循环?因为正如我所说,我最终需要不止一次地做很多列
提前谢谢你
【问题讨论】:
标签: matlab