Matlab中的括號()[]{}

weixin_33670713發表於2017-09-15

轉自http://blog.sina.com.cn/s/blog_618af1950100lbc3.html
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層都需要用大括號引用。

結論:
“胞元標識(cell Indexing)”:以二維胞元陣列A為例,A(2,3)是指A胞元數線中的第2行第3列胞元元素
“胞元內容編址(Content Addressing)”:如A{2,3}是指A胞元陣列第2行第3列胞元中所允許存放的內容
Matlab中陣列,元庖等的關係如下:

相關文章