所以我对MATLAB完全陌生,我试图在数学运算中理解冒号。所以,在本书中我发现了这个陈述:
w(1:5)=j(1:5) + k(1:5);
我不明白它到底是做什么的。我知道w(1:5)
几乎遍历索引1到5的w
数组,但在上面的语句中,w
的所有索引都不应等于{{ 1}}到底?或者我对这是如何工作完全错误的?如果有人在Java中发布了等效的内容,那就太棒了。在此先感谢: - )
答案 0 :(得分:2)
我很确定这意味着
“w的前5个元素应该是j的前5个元素+ k的前5个元素”(我不确定matlab数组是否以0或1开头)
所以:
w1 = j1+k1
w2 = j2+k2
w3 = j3+k3
w4 = j4+k4
w5 = j5+k5
在这里想想“矢量添加”。
答案 1 :(得分:1)
w(1:5)=j(1:5) + k(1:5);
与:
相同for i=1:5
w(i)=j(i)+k(i);
end
答案 2 :(得分:0)
MATLAB使用向量和矩阵,并经过大量优化,可以有效地处理它们的操作。
表达式w(1:5)
表示由w
的前5个元素组成的向量;你发布的表达式添加了两个5个元素向量(j和k的前5个元素),并将结果赋给w的前五个元素。
答案 3 :(得分:0)
我认为您的问题来自于您如何称呼此声明。它不是迭代,而是简单的赋值。现在我们只需要了解分配给什么的内容。
我将假设j
,k
,w
都是1
所有向量N
。
j(1:5)
- 表示向量1
的{{1}}到5
的元素
j
- 将导致两个操作数的元素总和
j(1:5) + k(1:5)
- 会再次将结果元素分配给w(1:5) = ...
使用冒号表示法编写代码可以减少冗长和高效。因此强烈建议这样做。此外,冒号表示法是MATLAB的基本功能和非常强大的功能。继续之前,请确保您理解得很好。 MATLAB有很好的文档记录,因此您可以阅读这个主题here。