在matlab中,常常会遇到(),[],和{},这个3种符号怎么区分,怎么用,这里我来总结一下,供参考。

[]用来存储矩阵和向量,同时可以接受函数返回的多个值
{}用于创造指示单元数组,比如{'china',[1,2,3,4]} 这种数组的类型即是一个字符串加上一个double数组
或者a{3,3}='china'就是a这种单元数组第三行第三列的元素为'china';
()用于引用数组的元素,如X(2)即X数组的第二个元素,而X([1,2,3])即X数组的前3个元素,而需要注意的是,当引用单元数组时,要用{},比如引用X的第一行第二列的元素就应该写成X{1,2}而非X(1,2)

[]
首先。[]叫中括号,它用来存储矩阵和向量(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矩阵中的元素
运行如下

Last modification:January 20th, 2021 at 12:18 pm