1. 程式人生 > >MATLAB大中小括號()[]{}的區別

MATLAB大中小括號()[]{}的區別

今天逛論壇發現有人問這個,百度後發現大多數說的都比較模糊,我來詳細地說明一下,可能不比其他人好,不過換種說法可能會幫助更多人理解。

有不對或遺漏的地方歡迎指正。

[]表示矩陣,一般用於初始化矩陣或者組合矩陣,比如定義矩陣A=[1 2;3 4];
或者有兩個矩陣A B,C = [A B];
前面不可能加什麼東西,a[]這種東西肯定不對。
()用於定位矩陣中的元素,也可定位struct變數,比如A(1,2)就是指矩陣A的第一行第二列的元素,A(1).name就是struct A.name的第一個元素。
{}用於cell,{}前面一定是一個cell變數,其它跟()沒什麼區別。
其中()的使用最為廣泛,不止上述用法,不過其它用法應該不容易混淆, 比如在函式中使用,fun(a , b)這樣的形式等。


需要注意的是,cell與矩陣有一些區別,在定位元素的時候,對於矩陣A,不能使用A[]這樣的形式,但是對於cell B,既可以用B{}的形式,也可以用B()的形式定位B的元素,但是B{}返回的是對應元素的值,B()返回的是對應元素的cell。

比如

A={'H',2};

B1=A{1};

B2=A{2};

C1=A(1);

C2=A(2);

此時B1的型別是char,B2的型別是double,而C1和C2的型別還是cell