1. 程式人生 > >matlab中(),[],與{}的區別認識

matlab中(),[],與{}的區別認識

在matlab中,常常會遇到(),[],和{},這個3種符號怎麼區分,怎麼用,這裡我來總結一下,供參考。

  • []

首先。[]叫中括號,它用來儲存矩陣和向量(vector在C++中也叫容器)
舉個例子,a=[1,2,3],是一個向量,這個向量有3個元素,也可以用a=[1 2 3]
eg:
這裡寫圖片描述
對於a=[1 2 3;2 3 4 ;3 4 5],就是一個3*3矩陣
這裡寫圖片描述

  • { }

大括號,用於cell型的陣列(就是前面講的單元陣列)的分配或引用。
比如 a{3,3}=‘china’就是建立了一個3*3的單元陣列,a(3,3)就是‘china’
比如c={‘china’,’中國’,[1 2 3 4]}執行結果如下
這裡寫圖片描述


比如:A(2,1) = {[1 2 3; 4 5 6]},就是一個2行一列的單元陣列,第二行第一列的元素就是[1 2 3;4 5 6]的2*1矩陣

  • ( )

小括號,用於引用陣列的元素。
如 X(3)就是X的第三個元素。 X([1 2 3])就是X的頭三個元素。
這裡用[]建立一個非cell陣列。a=[1 2 2],則a(1,2)就是訪問的a陣列的第一行第2列元素,為2.

最後看一下單元陣列和普通陣列的關係。
比如我建立了一個單元陣列:
a=cell(2,3)
a(1,2)=’china’;%這種寫法是錯的
a{1,2}=’china’%這種寫法才對
因為大括號才代表單元陣列賦值,小括號只能是普通陣列中的元素
如下
a{1,3}=[1 2 3;2 3 4];
b=a{1,3}(1,3)%這樣才能取出上面2*3矩陣中的元素
執行如下
這裡寫圖片描述


這裡寫圖片描述
大家多嘗試一下,就會明白這些括號的意思。