理解MATLAB中的冒号符号
所以我对MATLAB完全陌生,我试图理解数学运算中的冒号符号。因此,在这本书中,我发现了这样一种说法:理解MATLAB中的冒号符号,matlab,Matlab,所以我对MATLAB完全陌生,我试图理解数学运算中的冒号符号。因此,在这本书中,我发现了这样一种说法: w(1:5)=j(1:5) + k(1:5); 我不明白它到底是干什么的。我知道w(1:5)几乎是从索引1到5在w数组中迭代,但是在上面的陈述中,w的所有索引不应该最终都等于j(5)+k(5)?还是我完全错了?如果有人在Java中发布与之相当的内容,那就太棒了。提前感谢:-) 这与: for i=1:5 w(i)=j(i)+k(i); end 这与: for i=1:5 w(i
w(1:5)=j(1:5) + k(1:5);
我不明白它到底是干什么的。我知道w(1:5)
几乎是从索引1到5在w
数组中迭代,但是在上面的陈述中,w
的所有索引不应该最终都等于j(5)+k(5)
?还是我完全错了?如果有人在Java中发布与之相当的内容,那就太棒了。提前感谢:-)
这与:
for i=1:5
w(i)=j(i)+k(i);
end
这与:
for i=1:5
w(i)=j(i)+k(i);
end
MATLAB使用向量和矩阵,并经过大量优化以高效地处理对它们的操作
表达式
w(1:5)
表示由w
的前5个元素组成的向量;您发布的表达式添加了两个5元素向量(j和k的前5个元素),并将结果分配给w的前5个元素。MATLAB使用向量和矩阵,并进行了大量优化以有效地处理对它们的操作
表达式
w(1:5)
表示由w
的前5个元素组成的向量;您发布的表达式添加了两个5元素向量(j和k的前5个元素),并将结果分配给w的前5个元素。我认为您的问题来自如何称呼此语句。这不是一个迭代,而是一个简单的赋值。现在我们只需要了解分配给什么的内容
我将假定j
,k
,w
都是1
byN
j(1:5)
-表示向量j
j(1:5)+k(1:5)
-将导致两个操作数的元素和w(1:5)=…
-将按元素再次将结果分配给w
使用冒号符号编写代码可以减少冗长,提高效率。因此,强烈建议这样做。此外,冒号表示法是MATLAB的基本且非常强大的功能。在你继续之前,确保你很好地理解它。MATLAB有很好的文档,所以你可以阅读这个主题。我认为你的问题来自于你如何称呼这个语句。这不是一个迭代,而是一个简单的赋值。现在我们只需要了解分配给什么的内容 我将假定
j
,k
,w
都是1
byN
j(1:5)
-表示向量j
j(1:5)+k(1:5)
-将导致两个操作数的元素和w(1:5)=…
-将按元素再次将结果分配给w
使用冒号符号编写代码可以减少冗长,提高效率。因此,强烈建议这样做。此外,冒号表示法是MATLAB的基本且非常强大的功能。在你继续之前,确保你很好地理解它。MATLAB有很好的文档,所以你可以阅读这个主题。我很确定这意味着 “w的前5个元素应该是j的前5个元素+k的前5个元素”(我不确定matlab数组是从0还是1开始) 因此:
想想这里的“向量加法”。我很确定这意味着 “w的前5个元素应该是j的前5个元素+k的前5个元素”(我不确定matlab数组是从0还是1开始) 因此:
想想这里的“向量加法”。我想我喜欢把事情复杂化。我认为这类似于:
对于n=1:5对于h=1:5对于s=1:5w(n)=j(h)+k(s);结束
就好像每次迭代只发生一次一样。我想不是。谢谢。更准确地说,上面的代码就是这个循环的所谓矢量化版本,它更有效。我想我喜欢把事情复杂化。我认为这类似于:对于n=1:5对于h=1:5对于s=1:5w(n)=j(h)+k(s);结束
就好像每次迭代只发生一次一样。我想不是。谢谢。更准确地说,上面的代码就是这个循环的所谓矢量化版本,它更有效。Matlab数组索引从1开始。Matlab数组索引从1开始。
w1 = j1+k1
w2 = j2+k2
w3 = j3+k3
w4 = j4+k4
w5 = j5+k5