【转】Matlab中的括号()[] {}

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,2)
%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数组 是MATLAB的一种特殊矩阵,或者叫做广义矩阵。矩阵的每个元素可以是任何一种数据类型的常数、常量或者矩阵,所以矩阵的每个的元素叫做cell。和一般的数值矩阵一样,元胞数组的内存空间也是动态分配的。

通过小括号()里面加下标,访问cell数组中的数据,返回的是对应的cell。

通过大括号{}里面加下标,访问cell数组中的数据,返回的是对应cell的内容。看一下下面的例子就明白了!

 

 

a={20,'matlab',ones(2,3)}
a = 
[ 20 ] 'matlab'  [ 2x3 double ]
>> a(3) %查看cell数组a中的第三个cell
ans = 
[ 2x3 double ]
>> class(a(3)) %查看cell数组a中第三个cell的类型
ans =
cell
>> a{3} %查看cell数组a中第三个cell的内容
ans =
1 1 1
1 1 1
>> class(a{3}) %查看cell数组a中第三个cell的内容的类型
ans =
double
>> a(3)= [] %删除cell数组a中的第三个cell
a = 
[ 20 ] 'matlab'
>> a{2}= [] %清空cell数组a中第二个cell的内容,并没有删除
a = 
[ 20 ]  []

 

转载于:https://www.cnblogs.com/xiongyunqi/p/3737689.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值