今天逛论坛发现有人问这个,百度后发现大多数说的都比较模糊,我来详细地说明一下,可能不比其他人好,不过换种说法可能会帮助更多人理解。
有不对或遗漏的地方欢迎指正。
[]表示矩阵,一般用于初始化矩阵或者组合矩阵,比如定义矩阵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