【发布时间】:2021-07-01 22:49:58
【问题描述】:
我有一个向量 A,比如说
A = [1, 0, 0, 0]
我想对该向量执行操作以获取下一个元素。例如,说
A(i) = A(i - 1) * 5 [for i >= 2]
这可以通过循环轻松实现。但我想通过使用矢量运算来实现它。到目前为止我已经尝试过
A = [1, 0, 0, 0]
A(2:4) = A(1:3) * 5
但是这个操作后A中的内容是这样的
A = [1 5 0 0]
目标答案应该是
A = [1 5 25 125]
请提及为实现目标而进行的必要更改。
[注意:请不要把上面的例子简单地认为是5的幂的元素,而是考虑A(i) = A(i - 1) * 5。]
【问题讨论】:
-
这个操作本质上依赖依次评估每个值。循环不一定很慢或很糟糕,你为什么要避免一个顺序操作,它很适合循环?
-
因为向量操作是单行的,并且比循环需要更少的代码。只是想知道有没有办法这样做。这也将增加我的知识。 [我不是循环... :)]
标签: matlab vector vectorization