在MATLAB中理解冒号表示法

时间:2011-12-04 01:47:10

标签: matlab

所以我对MATLAB完全陌生,我试图在数学运算中理解冒号。所以,在本书中我发现了这个陈述:

w(1:5)=j(1:5) + k(1:5);

我不明白它到底是做什么的。我知道w(1:5)几乎遍历索引1到5的w数组,但在上面的语句中,w的所有索引都不应等于{{ 1}}到底?或者我对这是如何工作完全错误的?如果有人在Java中发布了等效的内容,那就太棒了。在此先感谢: - )

4 个答案:

答案 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)

我认为您的问题来自于您如何称呼此声明。它不是迭代,而是简单的赋值。现在我们只需要了解分配给什么的内容。

我将假设jkw都是1所有向量N

j(1:5) - 表示向量1的{​​{1}}到5的元素
j - 将导致两个操作数的元素总和 j(1:5) + k(1:5) - 会再次将结果元素分配给w(1:5) = ...

使用冒号表示法编写代码可以减少冗长和高效。因此强烈建议这样做。此外,冒号表示法是MATLAB的基本功能和非常强大的功能。继续之前,请确保您理解得很好。 MATLAB有很好的文档记录,因此您可以阅读这个主题here