1.说明
元胞数组的子数组或元素也是元胞型的,其元素内容(值)是本身类型,因此,在添、删、改和连接处理时,必须明确每个元素的值的类型和大小,否则,编程报错是不可避免的了。看本文前建议先看上篇Matlab自学笔记二十九:元胞数组的创建、索引和转换方法
2.元胞数组的修改
程序示例如下:
b={1,2,magic(3)
'a',["a","b"],[]} %理解:元胞数组是大箱子,用大括号表示,内部的元素是盒子,盒子也是元胞型,盒子与箱子遵循Matlab预设规则,打开盒子往里面装内容,内容可以是任意大小任意格式的内容。
% b(1,1)=100 %元胞数组数据修改,小括号索引出第1行第1列元胞型,100双精度型无法赋值(小括号索引到盒子),报错
b(1,1)={100} %赋值也应包装成盒子(元胞型)再赋值
b{1,1}=100 %(大括号索引到盒子的内容)所以使用任意数值赋值即可
3.元胞数组的添加、删除
程序示例如下:
b={1,2,magic(3)
'a',["a","b"],[]}
b(3,4)={8} %b本身是2行3列,如此扩展为3行4列,第3行第4列为{8}其余扩展元素默认空矩阵填充
% b(1,1)=[] %报错,删除1个元素无法保持矩阵矩形
b(end,:)=[] %最后一行删除
b{1,1}=[] %大括号索引到盒子里的内容,并置为空(删除),盒子仍存在
4.元胞数组的连接(重要)
元胞数组的连接有两种方式:
(1)中括号[],遵从常用的矩阵连接的规则,连接的矩阵在类型和大小上有一定的匹配要求,若不满足,会报错:大小或者类型不一致;
(2)大括号{},连接后组成更大的元胞数组,特点是,连接的数组可以是任意类型和任意大小,缺点是,数据的运算和处理等不如矩阵数组那样灵活;
程序示例如下:
b={1,2,magic(3)
'a',["a","b"],[]}
%中括号连接:把元胞数组内某些元素进行重排
[{1 2 3},{'a'}] %水平连接
% [{1 2 3};{'a'}] %列数不同,报错
[{1 2 3};{'a',[],[]}] %列数相同
%大括号连接:把元胞数组视为一个元素进行重组(可理解为元胞数组的嵌套,元胞数组内可容纳任意类型,包括元胞型自身)
{{1 2 3},{'a'}} %水平连接
{{1 2 3};{'a'}} %纵向排列
{{1 2 3},{'a'},{},[],string(missing),uint16(10)} %只要占用元胞数组内的盒子,都会显示
相关内容推荐
31.6 Matlab绘制条形图柱状图,改变单个柱的颜色,堆叠显示,改变线型线宽
66.53 MatlabApp课设作业:简易一元高次方程解算显示器
22.13 Matlab非线性函数拟合问题lsqcurvefit使用最小二乘法求解非线性函数拟合问题曲线拟合/数据拟合/任意形式函数的拟合
21.1 一节讲透:插值入门,以及Matlab编程实现
38.1 从图像曲线上提取坐标数据:测量长度,测量角度、圆心和半径
66.20 文献上的图片是怎么用Matlab做出来的/数学建模必备技能
1.1 Matlab速成宝藏课/数学建模必备入门视频
45.1 一个实例入门Matlab深度学习|卷积神经网络
47.1/Matlab遗传算法/概念/原理/编程演示数学建模
End