Matlab中的括号()[]{}

Matlab中经常会用到括号去引用某Array或者是cell的内容,但三者有什么具体区别呢?

​[ ] 
中括号用来构建向量(Vectors)或者是矩阵(Matrices)。如​
​​​[6.9 9.64 sqrt(-1)] 就是一个有三个元素的向量。​​​​[11 12 13; 21 22 23]​​ 是一个二乘三的矩阵. 分号(;)用来结束一行。

中括号的另一个作用是在函数中,分配输出参数。


​{ }
大括号,用于cell型的数组的分配或引用。
比如​
​ ​​A(2,1) = {[1 2 3; 4 5 6]}​​, or ​​A{2,2} = ('str')​


( )

小括号,用于引用数组的元素。

如 X(3)就是X的第三个元素。 ​​X([1 2 3])就是X的头三个元素。

算例:

A = [ 1 2 3 ]

%A就是一个三个元素的数值数组。中括号用于构建非cell数组。

%数组的引用用小括号

A(1,1)

%A(1,2)得到A数组第一行第二列的元素。


B = {A A}

%B为1一行两列的数组,数组的元素为cell

%数组的引用依然用小括号

B(1)

%这时B(1)为一个cell

%cell内容的引用需要用大括号。

%B{1}则为cell 1的内容,此时为 1 2 3

%cell内容为数值数组的,继续用小括号引用其内容


B{1}(1,3)

%B{1}(1,3)的内容为3.


D={B B}


D =


    {1x2 cell}    {1x2 cell}


此时D的某个元素内容的引用则为

D{1}{1,2}(1)

%cell层都需要用大括号引用。


Matlab中数组,元庖等的关系如下: