1.多维数组p = perms(a)表示产生a中的所有全排列矩阵,例如: 简单应用:将一个4阶幻方矩阵进行全排列,共有4!=24种方案: A = magic(4);M = zeros(4,4,24);p = perms(1:4);for k = 1:24 M(:,:,k) = A(:,p(k,:));end 将24个幻方矩阵存储在了三维数组M中,M的大小为4*4*24。 sum(M,d)通过改变第d个下标来计算总和 sum(M,1)得到一个1*4*24的数组 sum(M,2)得到一个4*1*24的数组 sum(M,3)表示将24个矩阵块对应位置求和,得到一个4*4*1的数组,相当于4*4的矩阵 2.元胞数组特点: 1.可以存储大小不同的矩阵序列 2.检索内容时,使用大括号下标进行索引,A{1} 3.包含其他数组的副本,而不包含指向这些数组的指针,即修改原值,元胞里的内容不变 注意()索引与{}索引的区别!!! 3.字符文本S = ‘Hello Matlab’ S的大小为1*12的字符数组 a = double(S) 转化为ASCII码 字符的串联: 垂直连接时两个单词的长度必须相同!!!! 包含不同长度的字符: 创建字符数组时,数组各行的长度必须相同(使用空格填充较短行的末尾) 不需要任何填充的 5×1 元胞数组,该数组的各行可以具有不同的长度!!! cellstr() 将填充后的字符数组转换为字符向量元胞数组: char()进行逆操作!! 4.Matlab中的结构体结构体是多维 MATLAB 数组,包含可按文本字段标志符访问的元素。 结构体也为数组,因此也可以插入其他元素: 注意:上式70写错了,没有单引号,因为是数字,不加单引号,加上后就变成了字符了!!! 结构体的索引: s.score 与 s(1).score,s(2).score,s(3).score表达效果相同 要根据某个文本字段(例如, 括入大括号中,可以根据 要将结构体数组的每个元素的字段赋值给结构体外部的单独变量: 结构体数据的访问: 最常用方法是指定要引用的字段的名称; 另一种方法是使用动态字段名称: 动态字段名称将字段表示为变量表达式,MATLAB 会在运行时计算这些表达式。例如将 structName.(expression) 使用标准 MATLAB 索引语法创建此字段的索引。例如,要在字段名称中计算 structName.(expression)(7,1:25) 动态字段名称示例- 下面显示的 function avg = avgscore(test, student, first, last)for k = first:last scores(k) = test.(student).week(k);endavg = sum(scores)/(last - first + 1); 您可以运行此函数,并对动态字段 test.Ann.week(1:25) = [95 89 76 82 79 92 94 92 89 81]; test.King.week(1:25) = [87 80 91 84 99 87 93 87 97 87]; 在,运行 avgscore(test, 'Ann_Lane', 7, 22)avgscore(test, 'William_King', 7, 22) 参考:Matlab官方文档 |
|