MATLAB元胞数组创建与访问

上传人:ji****72 文档编号:37520531 上传时间:2018-04-17 格式: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:10 a =matlab 202x3 double 1x10 double b=matlab,20;ones(2,3),1:10 b =matlab 202x3 double 1x1

2、0 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) c =

3、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 (2)元胞数组的数据获得从元胞数组中读取数据,可保存为一个标准的数组或一个新的单元数组,或取出数组进 行计算。元胞数组中数据的访问,可通过元胞内容的下标进行,用元胞数组名加大括号。 大括号中数值表示元胞的下标。如 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=1,2

5、,3;4,5,6;7,8,9 a =1 2 34 5 67 8 9 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:3 a = 20 matlab 2x3 double 1x3 double a(1,=a =2x3 double 1x3 double a=20,matlab;on

6、es(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 = size

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

8、7i;ones(2,3),1:3,0 a = 20 matlab 3.0000 - 7.0000i2x3 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:若元胞元素为

9、空,则返回逻辑真islogical:若元胞元素为逻辑类型,则返回逻辑真isreal:若元胞元素为实数,则返回逻辑真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号