Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
理解MATLAB中的冒号符号_Matlab - Fatal编程技术网

理解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

所以我对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)=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
by
N

j(1:5)
-表示向量
j

j(1:5)+k(1:5)
-将导致两个操作数的元素和
w(1:5)=…
-将按元素再次将结果分配给
w


使用冒号符号编写代码可以减少冗长,提高效率。因此,强烈建议这样做。此外,冒号表示法是MATLAB的基本且非常强大的功能。在你继续之前,确保你很好地理解它。MATLAB有很好的文档,所以你可以阅读这个主题。

我认为你的问题来自于你如何称呼这个语句。这不是一个迭代,而是一个简单的赋值。现在我们只需要了解分配给什么的内容

我将假定
j
k
w
都是
1
by
N

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