MATLAB运算基础(第2章)答案
《MATLAB运算基础(第2章)答案》由会员分享,可在线阅读,更多相关《MATLAB运算基础(第2章)答案(35页珍藏版)》请在装配图网上搜索。
实验01讲评、参考答案 讲 评 未交实验报告的同学名单 数学:6人(11、12级) 信科:12-04, 12-22, 13-47 批改情况: 问题1: 不仔细,式子中出错。 问题2: 提交的过程不完整。 问题3: 使用语句尾分号(;)不当,提交的过程中不该显示的结果显示。 问题4: 截屏窗口没有调整大小。 附参考答案: 《MATLAB软件》课内实验 王平 实验01 MATLAB运算基础 (第2章 MATLAB数据及其运算) 一、实验目的 1. 熟悉启动和退出MATLAB的方法。 2. 熟悉MATLAB命令窗口的组成。 3. 掌握建立矩阵的方法。 4. 掌握MATLAB各种表达式的书写规则以及常用函数的使用。 二、实验内容 1. 数学表达式计算 先求下列表达式的值,然后显示MATLAB工作空间的使用情况并保存全部变量。 1.1 计算三角函数 (注意:度要转换成弧度,e2如何给出) 示例:点击Command Window窗口右上角的,将命令窗口提出来成悬浮窗口,适当调整窗口大小。 命令窗口中的执行过程: 1.2 计算自然对数 ,其中(提示:clc命令擦除命令窗口,clear则清除工作空间中的所有变量,使用时注意区别,慎用clear命令。 应用点乘方) 命令窗口中的执行过程: 1.3 求数学表达式的一组值 提示:利用冒号表达式生成a向量,求各点的函数值时用点乘运算。 命令窗口中的执行过程: 1.4 求分段函数的一组值 ,其中t=0:0.5:2.5 提示:用逻辑表达式求分段函数值。 命令窗口中的执行过程: 1.5 对工作空间的操作 接着显示MATLAB当前工作空间的使用情况并保存全部变量 提示:用到命令who, whos, save, clear, load,请参考教材相关内容。 命令窗口中的执行过程: >> who %显示当前工作空间中的变量名 Your variables are: a t x z1 z2 z3 z4 >> whos %显示当前工作空间中的变量名及信息 Name Size Bytes Class Attributes a 1x61 488 double t 1x6 48 double x 2x2 64 double complex z1 1x1 8 double z2 2x2 64 double complex z3 1x61 976 double complex z4 1x6 48 double >> save varfile %生成文件varfile.mat,并将当前工作空间的变量存入其中 >> clear all %清除当前工作空间中的全部变量 >> who >> whos >> load varfile %将文件varfile.mat装入 >> who Your variables are: a t x z1 z2 z3 z4 >> whos Name Size Bytes Class Attributes a 1x61 488 double t 1x6 48 double x 2x2 64 double complex z1 1x1 8 double z2 2x2 64 double complex z3 1x61 976 double complex z4 1x6 48 double >> 2. 矩阵运算与数组运算 已知: 2.1 矩阵加、减和数乘运算 A+6*B和A-B+I(其中I为单位矩阵。注意:如何得到单位矩阵) 命令窗口中的执行过程: 2.2 矩阵乘积和点乘积 A*B和A.*B 命令窗口中的执行过程: 2.3 矩阵的乘方和点乘方 A^3和A.^3 命令窗口中的执行过程: 2.4 矩阵的右除和左除 A/B及B\A 命令窗口中的执行过程: 2.5 拼接矩阵成大的矩阵 [A,B]和[A([1,3],:);B^2] 命令窗口中的执行过程: 3. 矩阵乘积、矩阵的子矩阵 设有矩阵A和B 3.1 求矩阵A和B的乘积 求它们的乘积并赋给C。(提示:可简化A的输入,用冒号表达式、reshape、矩阵转置) 命令窗口中的执行过程: 3.2 求矩阵C的子矩阵 将矩阵C的右下角32子矩阵赋给D。 命令窗口中的执行过程: 3.3 查看MATLAB工作空间的使用情况 命令窗口中的执行过程: 4. 完成下列数据操作 4.1 求[100,999]之间能被21整除的数的个数 提示:先利用冒号表达式,再利用find和length函数。 命令窗口中的执行过程: 4.2 建立一个字符串向量,删除其中的大写字母 提示:利用find函数和空矩阵。 命令窗口中的执行过程: 三、实验提示 1.1 计算三角函数提示 (注意:度要转换成弧度,e2如何给出) 提示1: 示例:点击Command Window窗口右上角的,将命令窗口提出来成悬浮窗口,适当调整窗口大小。 命令窗口中的执行过程: 提示2: e2的表示请查表“2.3 常用数学函数及其含义”。用exp(2)。 1.2 计算自然对数提示 ,其中 提示1: clc命令擦除命令窗口,clear则清除工作空间中的所有变量,使用时注意区别,慎用clear命令。 提示2: ln和开方的表示请查“表2.3 常用数学函数及其含义”。用log, sqrt。 提示3: x2是数组运算。用x.^2或x.*x。 提示4: i为复数的虚数单位(j也是)。若将i作变量则其虚数单位无效,恢复用clear i。慎用i, j做变量。 1.4 求分段函数的一组值提示 ,其中t=0:0.5:2.5 提示:用逻辑表达式求分段函数值。 提示1: 参考例2.4。 提示2: 对于第1个分段条件表达式 0 ≤ t < 1,有以下结果: 对于第2、3个分段条件表达式,有类似的结果。 于是,可以得到: 分段函数值=第1个表达式*第1个分段条件表达式+第2个表达式*第2个分段条件表达式+第3个表达式*第3个分段条件表达式+… 注意:分段区间是不重叠的。 对于在定义区间中任给的变量值,它只满足一个分段条件表达式(值为1),其它不满足(值为0),满足的对应项的值是其表达式的值,不满足的对应项值为0。 代入本题得: z4=t^2*(t>=0&&t<1)+(t^2-1)*(t>=1&&t<2)+(t^2+2*t+1)*(t>=2&&t<3) 继续做下去可以完成本题。若变量取100个值,求对应的函数值,还按这种方法来求做就有问题啦。 MATLAB提供了一种简单的方法: t不是一个个取值,而是把所有值放到t中成一个行向量,表达式自动逐个将t中的值代入表达式计算,得到对应的一组函数值。 实现这种功能需要将上面的表达式中的乘方号(^)和乘号(*)前加点(.),即改成(.^)和(.*),相当于循环,它不同于线性代数中相应的矩阵乘方(^)和乘法(*)运算。 用冒号表达式更简单: 以下是分解式: 至此,能理解表达式的计算结果了吗? 1.5 对工作空间的操作提示 接着显示MATLAB当前工作空间的使用情况并保存全部变量 提示1: 用到命令who, whos, save, clear, load,请参考教材相关内容。 步骤:查看工作空间;保存工作空间;清除工作空间;再查看工作空间;装入工作空间;再查看工作空间。 2.1 矩阵加、减和数乘运算提示 A+6*B和A-B+I(其中I为单位矩阵。注意:如何得到单位矩阵) 提示1: 3阶单位矩阵用eye(3)或eye(3,3)。 4. 完成下列数据操作 4.1 求[100,999]之间能被21整除的数的个数提示 提示:先利用冒号表达式,再利用find和length函数。 提示1: 步骤: 用冒号表达式把[100,999]之间的整数放在一个向量里(如A); 用mod求得一个向量(如B),使A中能被21整除的数在B中对应位置为1,B的其它位置为0; 用find求得B中不为0的元素的序号,放入一个向量中(如K); 显示A中对应K的元素;%即能被21整除的数 用length显示K的元素个数。%即能被21整除的数的个数 4.2 建立一个字符串向量,删除其中的大写字母提示 提示:利用find函数和空矩阵。 提示1: 利用find函数和空矩阵。 注意使用关系运算、逻辑运算。 注意!本题中大写字母所在位置是随机的,要用关系运算和逻辑运算,以及find找到它们所在位置的序号。 提示2: 四、教程:第2章 MATLAB数据及其运算 2.1 MATLAB数据的特点 p17 矩阵 是MATLAB最基本、最重要的数据对象。 MATLAB的大部分运算或命令都是在矩阵(复数域上)运算的意义下执行的。 标量对应仅含一个元素的矩阵。 数值数据 双精度数 占64位,转换函数double 单精度数 占32位,转换函数single 带符号整数 转换函数int8,int16,int32 无符号整数 转换函数uint8,uint16,uint32 字符数据 转换函数char 结构体类型 (Structure) 单元类型 (Cell) 逻辑型 非0为true,0为false 2.2 变量及其操作 2.2.1变量与赋值 1.变量命名 以字母开头,后接字母、数字或下划线的字符序列,最多63个字符。 区分字母的大小写。 MATLAB提供的标准函数名以及命令名必须用小写字母。 2.赋值语句 (1) 变量=表达式 (2) 表达式(值赋给预定义变量ans) 其中,表达式是用运算符将有关运算量连接起来的式子,其结果是一个矩阵。 例2.1 计算表达式的值 p18 将的计算结果赋给变量x,然后显示出结果。 >> x=(5+cos(47*pi/180))/(1+sqrt(7)-2*i) x = 1.1980 + 0.6572i 其中,pi和i都是MATLAB预先定义的变量,分别代表圆周率π和虚数单位。 3. 预定义变量 p18 表2.1 常用的预定义变量及其含义 预定义变量 含义 ans eps pi i,j inf,Inf NaN,nan nargin nargout realmax realmin lasterr lastwar 默认赋值变量 机器零阈值2.2204e-016 π近似值 虚数单位 无穷大,如1/0的结果 非数,如0/0,inf/inf的结果 函数输入参数个数 函数输出参数个数 最大正实数 最小正实数 存放最新的错误信息 存放最新的警告信息 预定义变量有特定的含义,应尽量避免重新赋值。 i=2 %对预定义变量重新赋值 2*i clear i %恢复预定义变量 2*i i = 2 ans = 4 ans = 0 + 2.0000i 2.2.2 变量的管理 p19 1.内存变量的显示与删除 显示工作空间中驻留的变量名清单及信息命令: who %显示变量名清单 whos %显示变量名清单及信息 删除工作空间中的变量命令: clear 变量名 工作空间窗口专门用于内存变量的管理。 在该窗口中显示所有内存变量的属性。 l 当选中某些变量后,再单击Delete按钮,将删除这些变量。 l 双击变量后,将进入变量编辑器。可以观察变量中的具体元素,也可修改具体元素。 l 输入较大矩阵时,可采用变量编辑器。 2.内存变量文件 用MAT文件可把当前工作空间中的一些有用变量长久地保留下来,扩展名是.mat。 MAT文件的生成和装入,常用格式为: save 文件名[变量名表] [-append][-ascii] load 文件名[变量名表] [-ascii] l 文件名 可带路径,不需带扩展名.mat,默认对.mat文件进行操作。 l 变量名表变量名以空格分隔。省略时,保存或装入全部变量。 l -ascii 选项使文件以ASCII格式处理,省略时以二进制格式处理。 l -append选项使变量追加到MAT文件中。 2.2.3 数据的输出格式 p20 用十进制数表示一个常数,可采用日常记数法和科学记数法。 一般情况下,内部每一个数据元素都用双精度数表示和存储。 设置或改变数据输出格式 format命令的格式为: format 格式符 格式符决定数据的输出格式 表2.2 控制数据输出格式格式符及含义 格式符 含义 short (默认) 小数点后4位,不超过7位有效数字。 大于1000的实数用5位有效数字的科学记数法 long 15位有效数字 short e 5位有效数字科学记数法 long e 15位有效数字科学记数法 short g 从short和short e选择最佳方式 long g 从long和long e选择最佳方式 rat 近似有理数表示 hex 十六进制表示 + 正数、负数、零分别用+、-、空格表示 bank 银行格式,元、角、分表示 compact 输出变量之间无空行 loose 输出变量之间有空行 可用Help format查询 例 输出格式format >>4/3 %当前输出格式 ans = 1.3333 >>format long %15位有效数字形式输出 >>4/3 ans = 1.333333333333333 >>format rat %近似有理数表示 >>4/3 ans = 4/3 >>format compact %输出变量之间没有空行 >>4/3 ans = 4/3 >>format loose %输出变量之间有空行 >>4/3 ans = 4/3 >>format short %short为默认输出格式 2.3 矩阵的表示 p21 表 矩阵操作函数及其含义 函数名 含 义 eye ones linspace sub2ind ind2sub size length reshape end [ ] 单位矩阵 全1矩阵 生成行向量 下标转换成序号 序号转换成下标 给出矩阵的行数和列数 给出矩阵行数和列数中较大者 矩阵重排 预定义变量,某一维末尾下标 空矩阵 2.3.1 矩阵的建立 1. 直接输入法 从键盘直接输入矩阵的元素。方法如下: 将矩阵的元素用方括号括起来,输入元素; 同一行的元素间用空格或逗号分隔; 不同行的元素间用分号(或回车)分隔。 例 >> A=[1,2,3;4 5 6;7,8 9] A = 1 2 3 4 5 6 7 8 9 2. 利用M文件建立矩阵 对于比较大且复杂的矩阵,可专门建立一个M文件。 例2.2 利用M文件建立矩阵 (1) 启动文本编辑器,输入: MYMAT=[101,102,103,104,105; 201,202,203,204,205; 301,302,303,304,305] (2) 存盘(文件名为mymatrix.m)。 (3) 在命令窗口中输入mymatrix,即运行该M文件,就建立一个名为MYMAT的矩阵。 3. 建立大矩阵(矩阵拼接) 大矩阵可由方括号中的小矩阵或向量建立。 >> A=[1,2;3,4] A = 1 2 3 4 >> eye(2) ans = 1 0 0 1 >> ones(2) ans = 1 1 1 1 >> C=[A,eye(2),ones(2),A] C = 1 2 1 0 1 1 1 2 3 4 0 1 1 1 3 4 2.3.2 冒号表达式 用冒号表达式产生行向量,一般格式: e1:e2:e3 其中e1为初始值,e2为步长,e3为终止值上限。 用linspace函数产生行向量。调用格式: linspace(a,b,n) 其中a和b是第一个和最后一个元素,n是元素总数。 2.3.3 矩阵的拆分 1.矩阵元素 通过下标引用矩阵的元素,例 >> A=[1,2,3;4,5,6] A = 1 2 3 4 5 6 >> A(2,3) ans = 6 >> A(2,2)=22; >> A A = 1 2 3 4 22 6 >> A(4,5)=10; >> A A = 1 2 3 0 0 4 22 6 0 0 0 0 0 0 0 0 0 0 0 10 采用矩阵元素的序号来引用矩阵元素。 元素的序号是相应元素在内存中的排列顺序。 在MATLAB中,矩阵按列存储,先第一列,再第二列,依次类推。 >> A=[1,2,3;4,5,6] A = 1 2 3 4 5 6 >> A(3) ans = 2 >> A(5) ans = 3 >> A(8) ??? Attempted to access A(8); index out of bounds because numel(A)=6. numel(A) 返回A中元素个数。 序号(Index)与下标(Subscript )一一对应。 以mn矩阵A为例,矩阵元素A(i,j)的序号为(j-1)*m+i。 互转换关系用sub2ind和ind2sub函数求得。 >>A=ones(3,4) A = 1 1 1 1 1 1 1 1 1 1 1 1 >>size(A) %给出矩阵的行数和列数 ans = 3 4 >>sub2ind(size(A),1,2)%下标(1,2)转换为序号 ans = 4 >>[i,j]=ind2sub(size(A),3)%序号转换为下标 i = 3 j = 1 >>length(A) %给出矩阵行数和列数中较大者 ans = 4 reshape(A,m,n) 在矩阵总元素保持不变的前提下,将矩阵重新排成mn矩阵。 >> x=1:1:12; >> y=reshape(x,3,4) y = 1 4 7 10 2 5 8 11 3 6 9 12 >> z=reshape(y,2,7) ??? Error using ==> reshape To RESHAPE the number of elements must not change. 2. 矩阵拆分 (1) 利用冒号表达式获得子矩阵 已知A为矩阵 A(:,j)第j列全部元素; A(i,:)第i行的全部元素; A(i,j)第i行、第j列的元素; A(i:i+m,:)第i~i+m行的全部元素; A(:,k:k+m)第k~k+m列的全部元素; A(i:i+m,k:k+m)第i~i+m行内,并在第k~k+m列中的所有元素; A(:)将每一列元素堆叠起来,成为一个列向量。 end表示某一维的末尾元素下标。 A(end,:) 最后一行 A(:,end) 最后一列 (2) 利用空矩阵删除矩阵的元素 给变量X赋空矩阵的语句: X=[ ] 注意,X=[ ]与clear X不同: clear是将X从工作空间中删除,而空矩阵则存在于工作空间中,只是维数为0。 2.4 MATLAB数据的运算 p26 2.4.1 算术运算 1.基本算术运算 MATLAB的基本算术运算有: + 加 - 减 * 乘 / 右除 \ 左除 ^ 乘方 注意,运算是在矩阵意义下进行的。 (1) 矩阵加减运算 假定矩阵A和B,则A+B和A-B实现矩阵的加减运算。 运算规则是: l 若A和B的维数相同,则可以执行矩阵的加减运算,A和B的相应元素相加减。 l 若A与B的维数不相同,将给出错误信息。 注意,A、B均不是标量。 (2) 矩阵乘法 若A为mn矩阵,B为np矩阵,则 C=A*B 为mp矩阵。 (3) 矩阵除法 有两种矩阵除法运算: \ 左除 / 右除 若A矩阵是非奇异方阵,则A\B和B/A运算可以实现。 A\B等效于inv(A)*B B/A等效于B*inv(A) 对于含有标量的运算,两种除法运算的结果相同。 如 3/4和4\3有相同的值,都等于0.75。 又如 设a=[10.5,25],则 a/5=5\a=[2.1000 5.0000] 对于矩阵运算,一般A\B≠B/A。 (4) 矩阵的乘方 一个矩阵的乘方运算可表示成 A^x 要求A为方阵,x为标量。 2.点运算 有一种特殊的运算,因为其运算符是在有关算术运算符前面加点,所以叫点运算。 点运算符有 .* 点乘 ./ 点右除 .\ 点左除 .^ 点乘方 两矩阵进行点运算是指它们的对应元素进行相关运算,要求两矩阵的维数相同。 3. MATLAB常用数学函数 p29 l 函数的自变量规定为矩阵变量。 l 运算法则是将函数逐项作用于矩阵的元素上。 l 结果是一个与自变量同维数的矩阵。 表2.3 常用数学函数及其含义 p29 函数名 含义 三角函数 sqrt log log10 log2 exp pow2 abs angle real imag conj rem mod fix floor ceil round sign gcd lcm 略 平方根函数 自然对数函数 常用对数函数 以2为底的对数函数 自然指数函数 2的幂 绝对值函数 复数的幅角 复数的实部 复数的虚部 复数共轭运算 求余数或模运算 模运算 向零方向取整 不大于自变量的最大整数 不小于自变量的最小整数 四舍五入到最邻近的整数 符号函数 最大公因子 最小公倍数 函数使用说明: (1) 三角函数以弧度为单位计算。 (2) abs函数可以求实数的绝对值、复数的模、字符串的ASCII码值。 >> abs(-10) ans = 10 >> abs(3+4i) ans = 5 >> abs(abc) ans = 97 98 99 (3) 用于取整的函数有 fix 向0方向取整 floor 向-∞方向取整 ceil 向+∞方向取整 round 四舍五入到最邻近的整数 (4) rem(x,y)和mod(x,y)要求x,y必须为相同大小的实矩阵或为标量。 rem 求余数或模运算 mod 模运算 l 当y≠0时 rem(x,y)=x-y.*fix(x./y) mod(x,y)=x-y.*floor(x./y) l 当y=0时 rem(x,0)=NaN(非数) mod(x,0)=x 2.4.2 关系运算 p30 6种关系运算符: < 小于 <= 小于或等于 > 大于 >= 大于或等于 == 等于 ~= 不等于 运算法则: (1) 两个标量的比较 若关系成立,结果为1,否则为0。 (2) 两个同维数矩阵的比较 对相同位置的元素比较。 (3) 标量与矩阵的比较 标量与矩阵的每一个元素比较。 例2.3 建立5阶方阵,判断A的元素是否能被3整除。 A=[24,35,13,22,63;23,39,47,80,80;... 90,41,80,29,10;45,57,85,62,21;... 37,19,31,88,76] P=rem(A,3)==0 %判断元素是否被3整除 A = 24 35 13 22 63 23 39 47 80 80 90 41 80 29 10 45 57 85 62 21 37 19 31 88 76 P = 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 1 1 0 0 1 0 0 0 0 0 2.4.3 逻辑运算 p31 逻辑运算符: & 与 | 或 ~ 非 运算法则: (1) 在逻辑运算中,确认非零元素为真,用1表示,零元素为假,用0表示。 (2) a和b是两个标量 l a&b a,b全为非零时,结果为1,否则为0。 l a|b a,b中只要有一个非零,结果为1,否则为0。 l ~a 当a是零时,结果为1;当a非零时,结果为0。 (3) 两个运算量是同维矩阵 相同位置上的元素按标量规则逐个进行。 (4) 一个是标量,另一个是矩阵 标量与矩阵中的每个元素之间按标量规则逐个进行。 (5) 逻辑非是单目运算符,也服从矩阵运算规则。 (6) 在算术、关系、逻辑运算中,算术运算优先级最高,逻辑运算优先级最低。 例2.4 在[0, 3π]区间,求y=sinx的值。 要求: ① 消去负半波,即(π, 2π)内的函数值置0。 ②和内取均值为。 %方法1 x=0:pi/100:3*pi; y=sin(x); y1=(x> A=[4,15,-45,10,6;56,0,17,-45,0] A = 4 15 -45 10 6 56 0 17 -45 0 >> find(A>=10 & A<=20) ans = 3 6 7 2.5 字符串 p33 字符串是用单撇号括起来的字符序列。 将字符串当作一个行向量,每个元素对应一个字符,其标识方法和数值向量相同。 可以建立多行字符串矩阵。 字符串是以ASCII码形式存储的。 abs和double函数都可以用来获取字符串矩阵所对应的ASCII码数值矩阵。 相反,char函数可以把ASCII码矩阵转换为字符串矩阵。 例2.6 建立一个字符串向量,然后对该向量做如下处理: (1) 取第1~5个字符组成的子字符串。 (2) 将字符串倒过来重新排列。 (3) 将字符串中的小写字母变成相应的大写字母,其余字符不变。 (4) 统计字符串中小写字母的个数。 clc; ch=ABc123d4e56Fg9 ; subch=ch(1:5) %取子字符串 revch=ch(end:-1:1) %将字符串倒排 k=find(ch>=a & ch<=z) %找小写字母的位置 ch(k)= A+(ch(k)-a) %小写字母变成大写 ch char(ch) %ASCII码矩阵转换为字符矩阵 length(k) %统计小写字母的个数 char([0:29;30:59;60:89;90:119;120:149]) subch = ABc12 revch = 9gF65e4d321cBA k = 3 7 9 13 ch = ABC123D4E56FG9 ch = ABC123D4E56FG9 ans = ABC123D4E56FG9 ans = 4 ans = !"#$%&()*+,-./0123456789:; <=>?@ABCDEFGHIJKLMNOPQRSTUVWXY Z[\]^_`abcdefghijklmnopqrstuvw xyz{|}~?????????????????????? 函数调用格式: eval(t) 其中t为字符串。 作用:把字符串的内容作为对应的MATLAB语句来执行。 表2.5 字符串处理函数及其含义 函数名 含 义 setstr char mat2str num2str int2str str2num strcat strcmp abs 将ASCII码值转换成字符 同上,将代替setstr 将矩阵转换成字符串 将数值转换成字符串 将整数转换成字符串 将字符串转换成数值 用于字符串的连接 用于字符串的比较 将字符转换成ASCII码 (1) 若字符串中含有单撇号,该撇号用两个单撇号表示。 (2) 某些情况下用字符串向量表示,即用[ ]括起来。 disp(Im a teacher.) f=70; c=(f-32)/1.8; disp([Room temperature is ,... num2str(c),degrees C.]) Im a teacher. Room temperature is 21.1111degrees C. 2.6 结构数据和单元数据 p34 2.6.1 结构数据 1.结构矩阵的建立与引用 结构矩阵 其元素可以是不同的数据类型,将一组不同属性的数据纳入到一个统一的变量名下进行管理。 建立结构矩阵可采用给结构成员赋值的办法。格式为: 结构矩阵名.成员名=表达式 其中表达式应理解为矩阵表达式。 例 建立含有3个元素的结构矩阵 >> a(1).x1=10; a(1).x2=liu; a(1).x3=[11,21;34,78]; >>a(2).x1=12; a(2).x2=wang; a(2).x3=[34,191;27,578]; >> a(3).x1=14; a(3).x2=cai; a(3).x3=[13,890;67,231]; >> a(2).x3 %引用矩阵元素a(2)的成员x3 ans = 34 191 27 578 >> a(2) %引用矩阵元素a(2) ans = x1: 12 x2: wang x3: [2x2 double] >> a %引用结构矩阵a a = 1x3 struct array with fields: x1 x2 x3 2.结构成员的修改 p35 可由需要增加或删除结构成员。 给a中任意一个元素增加成员x4: a(1).x4=410075; 但其他成员均为空矩阵,可用赋值语句给它赋值。 用rmfield函数删除结构成员。 a=rmfield(a,x4); >> a(1).x1=10; a(1).x2=liu; a(1).x3=[11,21;34,78]; >>a(2).x1=12; a(2).x2=wang; a(2).x3=[34,191;27,578]; >> a(3).x1=14; a(3).x2=cai; a(3).x3=[13,890;67,231]; >> a(1).x4=410075 a = 1x3 struct array with fields: x1 x2 x3 x4 >> a=rmfield(a,x4) a = 1x3 struct array with fields: x1 x2 x3 3.关于结构的函数 表2.6 结构的函数及其含义 p36 函数名 含义 struct getfield rmfield isstruct fieldnames setfield isfield 建立或转换为结构矩阵 获取结构成员的内容 删除结构成员 是结构时,值为真 获取结构成员名 设定结构成员的内容 成员在结构中时,值为真 2.6.2 单元数据 p36 单元矩阵的各个元素是不同类型的数据,用带有大括号下标的形式引用单元矩阵元素。 1.单元矩阵的建立与引用 建立单元矩阵和一般矩阵相似,只是矩阵元素用大括号括起来。 例 建立单元矩阵。 >> b={10,liu, [11,21;34,78];... 12,wang,[34,191;27,578];... 14,cai,[13,890;67,231]}; >> b b = [10] liu [2x2 double] [12] wang [2x2 double] [14] cai [2x2 double] >> b{3,3} ans = 13 890 67 231 >> b{3,3}=10; >> b{3,3} ans = 10 >> b b = [10] liu [2x2 double] [12] wang [2x2 double] [14] cai [ 10] >> b(4)%第4个元素 ans = liu >> b{4} ans = liu 2.关于单元的函数 表2.7 单元的函数及其含义 p37 函数名 含 义 celldisp num2cell cell2struct iscell cellplot deal struct2cell 显示单元矩阵内容 把数字矩阵转换为单元矩阵 把单元矩阵转换为结构矩阵 是单元矩阵时,值为真 显示单元矩阵的图形描述 把输入分配给输出 把结构矩阵转换为单元矩阵 35
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 运算 基础 答案

链接地址:https://www.zhuangpeitu.com/p-10806951.html