MATLAB元胞数组创建与访问.docx

上传人:小飞机 文档编号:3161240 上传时间:2023-03-11 格式:DOCX 页数:6 大小:38.52KB
返回 下载 相关 举报
MATLAB元胞数组创建与访问.docx_第1页
第1页 / 共6页
MATLAB元胞数组创建与访问.docx_第2页
第2页 / 共6页
MATLAB元胞数组创建与访问.docx_第3页
第3页 / 共6页
MATLAB元胞数组创建与访问.docx_第4页
第4页 / 共6页
MATLAB元胞数组创建与访问.docx_第5页
第5页 / 共6页
亲,该文档总共6页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《MATLAB元胞数组创建与访问.docx》由会员分享,可在线阅读,更多相关《MATLAB元胞数组创建与访问.docx(6页珍藏版)》请在三一办公上搜索。

1、MATLAB元胞数组创建与访问 元胞数组是MATLAB的一种特殊数据类型,可以将元胞数组看做一种无所不包的通用矩阵,或者叫做广义矩阵。组成元胞数组的元素可以是任何一种数据类型的常数或者常量,每一个元素也可以具有不同的尺寸和内存占用空间,每一个元素的内容也可以完全不同,所以元胞数组的元素叫做元胞。和一般的数值矩阵一样,元胞数组的内存空间也是动态分配的。 元胞数组的创建 a=matlab,20;ones(2,3),1:10 a = matlab 20 2x3 double 1x10 double b=matlab,20;ones(2,3),1:10 b = matlab 20 2x3 double

2、 1x10 double c=10 c = 10 c(1,2)=2 c = 10 2 c(2,2)=5 c = 10 2 5 isequal(a,b) ans = 1 whos Name Size Bytes Class Attributes a 2x2 388 cell ans 1x1 1 logical b 2x2 388 cell c 2x2 208 cell 用cell函数创建元胞数组,创建的数组为空元胞。cell函数创建空元胞数组的主要目的是为数组预先分配连续的存储空间,节约内存占用,提高执行效率。 a=cell(1) a = b=cell(1,2) b = c=cell(3,3)

3、c = d=cell(2,2,2) d(:,:,1) = d(:,:,2) = whos Name Size Bytes Class Attributes a 1x1 4 cell ans 1x1 1 logical b 1x2 8 cell c 3x3 36 cell d 2x2x2 32 cell 元胞数组的数据获得 从元胞数组中读取数据,可保存为一个标准的数组或一个新的单元数组,或取出数组进行计算。元胞数组中数据的访问,可通过元胞内容的下标进行,用元胞数组名加大括号。大括号中数值表示元胞的下标。如a1,2表示元胞数组中第一行第二列的元胞。 a=20,matlab;ones(2,3),1:

4、3 a = 20 matlab 2x3 double 1x3 double str=a(1,2) str = matlab class(str) ans = cell str=a1,2 str = matlab class(str) ans = char 和有着本质的区别,大括号用于表示元胞的内容,小括号表示指定的元胞。 a = 20 matlab 2x3 double 1x3 double a2,1(2,2) ans = 0.9134 a2,1(2,3) ans = 0.0975 a1,2(2) ans = a 使用元胞的下标,可将一个元胞数组的子集赋值给另一个变量,创建新的元胞数组。 a=

5、1,2,3;4,5,6;7,8,9 a = 1 2 3 4 5 6 7 8 9 b=a(2:3,2:3) b = 5 6 8 9 c=a(1:3,2:3) c = 2 3 5 6 8 9 本例使用元胞下标的方式创建了新的元胞数组b和c,通过结果看出b和c就是元胞数组a的一部分。 元胞数组的删除和重塑 要删除单元数组中的行或列,可以用冒号表示单元数组中的行或列,然后对其赋一个空矩阵即可。 a=20,matlab;ones(2,3),1:3 a = 20 matlab 2x3 double 1x3 double a(1,= a = 2x3 double 1x3 double a=20,matlab

6、;ones(2,3),1:3; a1= a = matlab 2x3 double 1x3 double a(1)= a = 2x3 double matlab 1x3 double a(2)= a = 2x3 double 1x3 double a(1,2)= ? A null assignment can have only one non-colon index. a(1)= a = 1x3 double 元宝数组和其他数组一样,也可以通过reshape函数改变形状,改变后的元胞数组与原元胞数组的元素个数相同,不能通过改变形状来添加或删除元胞数组中的元素。 a=cell(4,4) a =

7、 size(a) ans = 4 4 b=reshape(a,2,8) b = size(b) ans = 2 8 元胞数组中的操作函数 cell:创建空的元胞数组 cellfun:为元胞数组的每个元胞执行指定的函数 celldisp:显示所有元胞的内容 cellplot:利用图形方式显示元胞数组 cell2mat:将元胞数组转变成为普通的矩阵 mat2cell:将数值矩阵转变成为元胞数组 num2cell:将数值数组转变成为元胞数组 deal:将输入参数赋值给输出 cell2struct:将元胞数组转变成为结构 struct2cell:将结构转变为元胞数组 iscell:判断输入是否为元胞数

8、组 a=20,matlab,3-7i;ones(2,3),1:3,0 a = 20 matlab 3.0000 - 7.0000i 2x3 double 1x3 double 0 b=cellfun(isreal,a) b = 1 1 0 1 1 1 c=cellfun(length,a) c = 1 6 1 3 3 1 d=cellfun(isclass,a,double) d = 1 0 1 1 1 1 cellfun函数的主要功能是对元胞数组的元素分别指定不同的函数,不过,能够在cellfun函数中使用的函数ushuliang是有限的。 能在cellfun中使用的函数: isempty:

9、若元胞元素为空,则返回逻辑真 islogical:若元胞元素为逻辑类型,则返回逻辑真 isreal:若元胞元素为实数,则返回逻辑真 length:元胞元素的长度 ndims:元胞元素的维数 prodofsize:元胞元素包含的元素个数 元胞数组的嵌套 元胞数组的元胞中包含其他的元胞数,称为嵌套元胞数组,没有嵌套结构的元胞则称为页元胞。使用嵌套的大括号或cell函数,或直接用赋值表达式,都可以创建嵌套单元数组,另外还可以访问嵌套元胞数组的子数组、元胞或元胞的元素。 a=cell(1,2) a = a(1,2)=cell(2,2) a = 2x2 cell a(1,1)=magic(3); a1,2(1,1)=1 2 3;4 5 6;7 8 9; a1,2(2,1)=2-i;4+7i; a1,2(2,2)=cell(1,2); a1,22,2(2)=5; cellplot(a) 元胞数组与数值数组间的转化 应用循环,可以将元胞数组转化为数值数组

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号