matlab 单元,MATLAB单元阵列

示例

同一类的元素通常可以连接成数组(有一些罕见的例外,例如函数句柄)。数值标量(默认为class double)可以存储在矩阵中。

>> A = [1, -2, 3.14, 4/5, 5^6; pi, inf, 7/0, nan, log(0)]

A =

1.0e+04 *

0.0001   -0.0002    0.0003    0.0001    1.5625

0.0003       Inf       Inf       NaN      -Inf

char在MATLAB中属于类的字符也可以使用类似的语法存储在数组中。这样的数组类似于许多其他编程语言中的字符串。

>> s = ['MATLAB ','is ','fun']

s =

MATLAB is fun

请注意,尽管两者都使用方括号[和],结果类却不同。因此,可以对它们执行的操作也不同。

>> whos

Name      Size            Bytes  Class     Attributes

A         2x5                80  double

s         1x13               26  char

事实上,该阵列s是不是字符串数组'MATLAB ','is '和'fun',它仅仅是一个字符串-的13个字符数组。如果由以下任何一项定义,您将获得相同的结果:

>> s = ['MAT','LAB ','is f','u','n'];

>> s = ['M','A','T','L','A','B,' ','i','s',' ','f','u','n'];

常规的MATLAB向量不允许您混合使用不同类的变量或几个不同的字符串。这是cell阵列派上用场的地方。这是一个单元格数组,每个单元格可以包含一些MATLAB对象,如果需要,每个单元格中的类可以有所不同。使用花括号{并将其}周围的元素存储在单元格数组中。

>> C = {A; s}

C =

[2x5 double]

'MATLAB is fun'

>> whos C

Name      Size            Bytes  Class    Attributes

C         2x1               330  cell

任何类的标准MATLAB对象都可以一起存储在单元格数组中。请注意,单元阵列需要更多的内存来存储其内容。

使用大括号{和可以访问单元格的内容}。

>> C{1}

ans =

1.0e+04 *

0.0001   -0.0002    0.0003    0.0001    1.5625

0.0003       Inf       Inf       NaN      -Inf

请注意,C(1)与有所不同C{1}。后者返回单元格的内容(并double在示例中包含类),而前者返回的单元格数组是的子数组C。同样,如果D是10×5的单元格数组,D(4:8,1:3)则将返回D大小为5×3且类为的子数组cell。而且语法C{1:2}没有单个返回的对象,但是评分器返回两个不同的对象(类似于具有多个返回值的MATLAB函数):

>> [x,y] = C{1:2}

x =

1                        -2                      3.14                       0.8                     15625

3.14159265358979                       Inf                       Inf                       NaN                      -Inf

y =

MATLAB is fun

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值