【问题标题】:Can matlab colon operator be used with arithmetic operators?matlab冒号运算符可以与算术运算符一起使用吗?
【发布时间】:2019-04-04 14:19:07
【问题描述】:

假设我想做一个vector

A = [4 8 16 32]

有没有办法使用colon 操作符来做到这一点? 例如:

A = 4:(*2):32;

【问题讨论】:

  • 不,它不能。冒号运算符只能为每个值添加一个固定的步长。但在这种情况下,您可以将运算(乘法)转换为加法,然后再转换回来:A = 2.^(2:5);

标签: matlab operators colon


【解决方案1】:

不,这在 Matlab 中是不可能的。你可以像@Luis 展示的那样使用它:

A = 2.^(2:5);

或者,如果您想在将来使用不同的功能:

A = [];
for n = 2:5
    A = [A n^2];
end

通过将 for 循环和 n^2 部分的限制更改为您想要的值,您可以随心所欲地进行操作。

希望这会有所帮助。

【讨论】:

  • 使用A=[A,n] 扩展数组效率非常低。做A(end+1)=nmuch, much faster。但是,如果可能,应该始终preallocate 而不是重复扩展数组。
猜你喜欢
  • 2020-04-22
  • 2017-10-20
  • 1970-01-01
  • 1970-01-01
  • 2020-06-13
  • 2019-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多