Matlab 元包数组(cell) 使用方法示例

本文深入解析MATLAB中的元胞数组,涵盖定义方法、赋值操作及查询元素的技巧,展示如何处理不同数据类型的复杂结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  元胞数组是MATLAB中特有的一种数据类型,是数组的一种,其内部元素可以是属于不同的数据类型,概念理解上,可以认为它和c语言里面的结构体、c++里面的对象很类似。

  介绍matlab 元包数组(cell)的使用方法与示例如下:

一、列举法定义元包数组

示例如下:
(1) 只有一个元素的元包数组,只含了向量[1,2,3]
a1={[1,2,3]}
输出:
在这里插入图片描述
(2)有3个元素的元包数组,分别是{1},{2},{3}
a2={1,2,3}
输出:
在这里插入图片描述
(3)有2个元素的元包数组,分别是[1,2],[3,4]
a3={[1,2],[3,4]}
输出:
在这里插入图片描述
(4)三个元素,类型可以不同
a4={1,2,[3,4]}
a5={1,2,{[3,4]}} %元包里面还可以包含元包
输出:
在这里插入图片描述
(5)定义2×2的元包数组
a6={1,3;2,4}
输出:
如a6
二、用cell定义
(1)A=cell(2,2) %定义2×2的元包
输出:
在这里插入图片描述
(2)赋值方式:
1、给元包数组的第一个元素赋值为数字2
A(1,1)={2}
A(1,2)={[2]}
A{2,1}=2
A{2,2}=[2]
%以上4种赋值方式效果是一样的。
输出:
在这里插入图片描述
2、将矩阵[1,2;3,4]赋值给A的第一行第一列的元素,即,使得这个元包里面包含一个矩阵
A(1,1)={[1,2;3,4]}
A{1,1}=[1,2;3,4]
输出:
在这里插入图片描述
3、将元包类型数据赋值给元包(元包里面嵌套元包)
%以下4种赋值方式是类似的,与前面的不一样,这里表示元包数组A的某个元素里面保存了元包数组类型
A{1,1}={2}
A{1,2}={[2]}
A{2,1}={[3,0]}
A{2,2}={[1,2;3,4]}
输出:
在这里插入图片描述
4、与3的区别在于这里A的每个元素里面保存了具有多个元素的元包数组,而上述3中A的元素里面的元包数组只有一个元素
A{1,1}=[1,{2}] %则A{1,1}表示{[1]},{[2]}
A{1,2}={1,{2}} %则A{1,2}表示{[1]},{{[2]}}
A{2,1}={[1,{2}]} %则A{2,1}表示{{[1]},{[2]}},不常用,比较复杂
A{2,2}={‘n’,1,[3,4],{[5,6,7]},@(x)x+1} %等号右边是由不同类型的数据组成的1行5列的元包数组,将整个元包数组保存于A{2,2}中
输出:
在这里插入图片描述
5、查询A中的元素
A(2,2) %这表示元包
A{2,2} %这表示元包里面的数据
A{2,2}{1} %表示A的第二行第二列的元素里面的元包所包含的矩阵[1,2;3,4]
A{2,2}(1) %表示A的第二行第二列的元素里面的整个元包
输出:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意:
A(1,1)=2 %这样写是错的,因为A(1,1)表示元包类型,而3是double型,不是元包。
在这里插入图片描述
更多用法参考MathWorks:https://ww2.mathworks.cn/help/matlab/ref/cell.html
所有代码:

clc,clear
%小括号表示元包的第几个元素,大括号表示元包的第几个元素里面的内容
a1={[1,2,3]}      %元包数组只有一个元素,其里面只包含了向量[1,2,3]
a2={1,2,3}        %元包数组具有三个元素,分别是{1},{2},{3}
a3={[1,2],[3,4]}  %元包数组具有两个元素
a4={1,2,[3,4]}    %元包数组具有三个元素,不同的元素所含数据的类型可以不同
a5={1,2,{[3,4]}}  %元包数组的元素还可以是元包
a6={1,3;2,4}      %定义2×2的元包数组
b=cell(3,1)  %定义31列的元包数组

A=cell(2,2)  %定义2×2的元包数组
%A(1,1)=2 %这样写是错的,因为A(1,1)表示元包类型,而2是double型,不是元包

%以下4种赋值方式是一样的
A(1,1)={2}
A(1,2)={[2]}
A{2,1}=2  
A{2,2}=[2]

A(1,1) %这表示元包
A{1,1} %这表示元包里面的数据

%将矩阵[1,2;3,4]赋值给A的第一行第一列的元素,即使得这个元包里面是一个矩阵
A(1,1)={[1,2;3,4]}
A{1,1}=[1,2;3,4]

%以下4种赋值方式是类似的,与前面的不一样,这里表示元包数组的某个元素里面保存了元包数组类型
A{1,1}={2}  
A{1,2}={[2]}
A{2,1}={[3,0]}
A{2,2}={[1,2;3,4]}

A{2,2}{1} %表示A的第二行第二列的元素里面的元包所包含的矩阵[1,2;3,4]
A{2,2}(1) %表示A的第二行第二列的元素里面的整个元包

A{1,1}=[1,{2}] %A{1,1}表示{[1]},{[2]}
A{1,2}={1,{2}} %A{1,2}表示{[1]},{{[2]}}
A{2,1}={[1,{2}]} %A{2,1}表示{{[1]},{[2]}},不常用,比较复杂
A{2,2}={'n',1,[3,4],{[5,6,7]},@(x)x+1} %等号右边是由不同类型的数据组成的15列的元包数组,将整个元包数组保存于A{2,2}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值