MATLAB元胞数组创建与访问

上传人:豆浆 文档编号:874297 上传时间:2017-05-20 格式:DOCX 页数:6 大小:16.71KB
返回 下载 相关 举报
MATLAB元胞数组创建与访问_第1页
第1页 / 共6页
MATLAB元胞数组创建与访问_第2页
第2页 / 共6页
MATLAB元胞数组创建与访问_第3页
第3页 / 共6页
MATLAB元胞数组创建与访问_第4页
第4页 / 共6页
MATLAB元胞数组创建与访问_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《MATLAB元胞数组创建与访问》由会员分享,可在线阅读,更多相关《MATLAB元胞数组创建与访问(6页珍藏版)》请在金锄头文库上搜索。

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

2、ble c=10c =10 c(1,2)=2c =10 2 c(2,2)=5c =10 2 5 isequal(a,b)ans =1 whosName Size Bytes Class Attributesa 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)c = d=cell(2,2,2)d(

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

4、double 1x3 double str=a(1,2)str =matlab class(str)ans =cell str=a1,2str =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=1,2,3;4,5,6;7,8,9a =1 2 34 5 67 8 9

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

6、e 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 = size(a)ans =4 4 b=reshape(a,2,8)b = size(b)ans

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

8、00i2x3 double 1x3 double 0 b=cellfun(isreal,a)b =1 1 01 1 1 c=cellfun(length,a)c =1 6 13 3 1 d=cellfun(isclass,a,double)d =1 0 11 1 1(函数的应用)cellfun 函数的主要功能是对元胞数组的元素(元胞)分别指定不同的函数,不过,能够在 cellfun 函数中使用的函数 ushuliang 是有限的。 能在 cellfun 中使用的函数:isempty:若元胞元素为空,则返回逻辑真islogical:若元胞元素为逻辑类型,则返回逻辑真isreal:若元胞元素为实数

9、,则返回逻辑真length:元胞元素的长度ndims:元胞元素的维数prodofsize:元胞元素包含的元素个数(7)元胞数组的嵌套元胞数组的元胞中包含其他的元胞数,称为嵌套元胞数组,没有嵌套结构的元胞则称为页元胞。使用嵌套的大括号或 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)(8)元胞数组与数值数组间的转化应用循环,可以将元胞数组转化为数值数组

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号