Matlab 中的方括号运算符在其两个值之间没有逗号
Square brackets operator in Matlab without comma between its two values
我很难弄清楚这段代码的作用,因为谷歌搜索方括号不会为搜索引擎的工作方式产生合适的结果。
id2
是一个 1x265
数组(所以基本上是一个具有 265 个值的一维向量)
m
是一个 1x245
数组(所以基本上是一个具有 245 个值的一维向量)
id2 = id2([m m(end)+1]);
就我目前所见,方括号中的第一个值和第二个值之间总是有一个逗号。
如果是
id2 = id2[m, m(end)+1]
在我的 Matlab 小经验中,我会知道它的含义,但事实并非如此,以前从未见过这个。
id2
之后的方括号也包含在括号 ( )
中,所以这让我觉得
id2 = id2([m m(end)+1])
和id2 = id2[m, m(end)+1]
是两个完全不同的东西。
你能解释一下这段代码的作用吗?
[1, 2]
和 [1 2]
是等价的。使用方括号构建数组时,逗号或 space 可以表示元素分隔。
使用括号 ()
的索引必须使用逗号来完成:A(3,1)
,而不是 A(3 1)
。这同样适用于函数中的参数列表:mean(A,[],1)
需要逗号来分隔各种参数。
id2 = id2([m m(end)+1]);
应该很清楚:您构建一个数组 [m m(end)+1]
,即您使用 m
并在其末尾添加一个额外的元素 m(end)+1
。据推测,这些应该是整数,因为看起来它们正在索引 id2
。综上所述,id2 = id2([m, m(end)+1]);
完全等价。
我可以推荐阅读 this post 了解 MATLAB 中的各种索引方式。
我很难弄清楚这段代码的作用,因为谷歌搜索方括号不会为搜索引擎的工作方式产生合适的结果。
id2
是一个 1x265
数组(所以基本上是一个具有 265 个值的一维向量)
m
是一个 1x245
数组(所以基本上是一个具有 245 个值的一维向量)
id2 = id2([m m(end)+1]);
就我目前所见,方括号中的第一个值和第二个值之间总是有一个逗号。
如果是
id2 = id2[m, m(end)+1]
在我的 Matlab 小经验中,我会知道它的含义,但事实并非如此,以前从未见过这个。
id2
之后的方括号也包含在括号 ( )
中,所以这让我觉得
id2 = id2([m m(end)+1])
和id2 = id2[m, m(end)+1]
是两个完全不同的东西。
你能解释一下这段代码的作用吗?
[1, 2]
和 [1 2]
是等价的。使用方括号构建数组时,逗号或 space 可以表示元素分隔。
使用括号 ()
的索引必须使用逗号来完成:A(3,1)
,而不是 A(3 1)
。这同样适用于函数中的参数列表:mean(A,[],1)
需要逗号来分隔各种参数。
id2 = id2([m m(end)+1]);
应该很清楚:您构建一个数组 [m m(end)+1]
,即您使用 m
并在其末尾添加一个额外的元素 m(end)+1
。据推测,这些应该是整数,因为看起来它们正在索引 id2
。综上所述,id2 = id2([m, m(end)+1]);
完全等价。
我可以推荐阅读 this post 了解 MATLAB 中的各种索引方式。