MATLAB学习笔记7

Matlab学习笔记 Day7

注:仅供学习使用,部分内容来自学校课程课件或网络,理性探讨。

1.元胞数组内容的调取
圆括号:元胞外标识
花括号:元胞内编址

以此题为例:
创建一个2x3的元胞数组,然后调取其元素。

>> A = {'This is a example',{'First line','Second line','Third line'}...
,zeros(2,3,4);char('First line','Second line','Third line'),magic(3),...
'OK'};

(1)调取一个元胞

>> c11=A(1,1),class(c11)  

c11 =

  1×1 cell array

    {'This is a example'}


ans =

    'cell'

(2)调取一个元胞的内容

>> a11=A{1,1},class(a11)

a11 =

    'This is a example'


ans =

    'char'

(3)调取一个元胞的内部信息

>> a21=A{2,1},a21(1,:),a21(2,:)

a21 =

  3×11 char array

    'First line '
    'Second line'
    'Third line '


ans =

    'First line '


ans =

    'Second line'

(4)子元胞数组(用圆括号

>> B1=A(1,:),B2=A(:,2)

B1 =

  1×3 cell array

    {'This is a example'}    {1×3 cell}    {2×3×4 double}


B2 =

  2×1 cell array

    {1×3 cell  }
    {3×3 double}

(5)同时调取多个内容
可以利用deal函数把输入参数逐个分配给输出参数。利用help deal命令查看。

2.元胞数组的扩展、收缩和重组
元胞数组的扩展、收缩和重组的方法大致与数值数组的情况相同。重组用reshape()函数。

3.获取元胞数组的信息
class(c ):返回变量C的类型,若C是元胞数组,则返回’cell’
iscell( c ):判断C是否为元胞数组,若是则返回1,反之返回0
ndims( c ):返回元胞数组我维数
S=size( C )或[m,n]=size( C ) 返回元胞数组C各维的大小
m=size(c,1)返回元胞数组c的行数
n=size(c,2)返回元胞数组c的列数
numel( c ):返回元胞数组c中元胞的个数
length( c ):等于max(size ( c )),若c只有一行一列元胞,则length( c )等于numel( c )
A=cellfun(Fun,c):将Fun指定的函数作用于元胞数组C的每一个元胞,将结果返回到A中。A的维数、大小与C相同。

4.元胞数组转换函数
C = num2cell(x)
将数值数组转换为维数大小相同的元胞数组C
C = mat2cell(X,M,N)
将矩阵X分块后存储转换为元胞数组C,M,N一般为向量,M,N的元素决定了矩阵的分块情况。
M = cell2mat( c ) 把合适的元胞数组转化为矩阵

关于3和4两条内容可以具体查看matlab的帮助文件。

5.架构数组的特点
①与元胞数组一样,架构数组也能在一个数组里存放各种不同类型的数据。
类似于C语言中结构型数组,但组织数据的能力比C语言中的结构型数组灵活。
②每个元素都是一个架构,数组中每个架构是平等的。以下标来区分,每个架构由若干个“域”组成,每个域必须有自己的名字,叫做域名。域的取值叫做域值。在实际应用中部分域值可以不赋值。
③可以存储任意类型、长度的数据。一个架构数组中不同架构的同名域可以存储不同类型的数据。
④维数不受限制,有单下标和全下标编址两种对架构的编址方法。

6.架构数组的创建
(1)直接创建(直接对各个架构的域赋值)

>> s.name = 'Xiao Mu';
>> s.birth = '1112';
>> s.sex = 'W';
>> s

s = 

    struct:

     name: 'Xiao Mu'
    birth: '1112'
      sex: 'W'

(2)利用构造函数struct创建
s = struct(‘field1’,VALUES1,‘field2’,VALUES2,…)
用指定的域名和域值创建架构数组S,其中VALUES必须是大小相同的元胞数组、1x1的元胞数组或其他类型任意数据,也可以为空[ ],除了1x1元胞数组外,其他元胞数组大小必须相同。

>> s = struct('name','Xiao Mu','birth','1112','sex','w')

s = 

   struct:

     name: 'Xiao Mu'
    birth: '1112'
      sex: 'w'

(3)利用转换函数创建
S = cell2struct(C,fields,d)
把元胞数组C转换为架构数组S,d表示将d维转化为域,fields给出了转换后的域名字符串
C = struct2cell(S)
把MxN的架构数组S(设有P个域)转换为PXMXN的元胞数组

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值