MATLAB 的基本数据单位是矩阵,它的指令表达与数学工程中常用的习惯形式十分相似,除了直接用[ ]来输入数组输入矩阵外,还可以借助函数来生成矩阵。
ones( ) 创建一个所有元素都为 1 的矩阵,其中可以制定维数,1,2….个变量
zeros() 创建一个所有元素都为 0 的矩阵,但是类型仍未double型
初始化一个逻辑类型的矩阵:A = true(5,5)或者A = false(5,5)
eye() 创建对角元素为 1,其他元素为 0 的矩阵
diag() 根据向量创建对角矩阵,即以向量的元素为对角元素
magic() 创建魔方矩阵
rand() 创建随机矩阵,服从均匀分布
randn() 创建随机矩阵,服从正态分布
randperm() 创建随机行向量
horcat C=[A,B],水平聚合矩阵,还可以用 cat(1,A,B)
vercat C=[A;B],垂直聚合矩阵, 还可以用 cat(2,A,B)
repmat(M,v,h) 将矩阵 M 在垂直方向上聚合 v 次,在水平方向上聚合 h 次
blkdiag(A,B) 以 A,和 B 为块创建块对角矩阵
- Matlab数组的下标是从“1”开始的,这点与C语言不同;
- MATLAB规定矩阵元素在存储器中的存放次序是按列的先后顺序存放,即存完第1列后,再存第2列,依次类推。例如,有一个3×4阶的矩阵B,若要把它存储在计算机中,其存放次序就如表2-13所示。C语言就是按行的先后顺序来存放数组元素的,即存完第1行后,再存第2行,依次类推。因此对应的访问顺序B(3)即访问到B(3,1) B(10)访问到B(1,4)。
- 与C语言不同,matlab矩阵、数组不用事先定义大小,可以动态增加
>> m=1m = 1>> m(1,2)=2m = 1 2
>> m(2,1)=3m =1 23 0
- matlab矩阵、数组可以动态改变形状 reshape
>> A=-4:4A =-4 -3 -2 -1 0 1 2 3 4>> A=reshape(A,3,3)A =-4 -1 2-3 0 3-2 1 4
- 数组转置、上下对称交换和旋转操作后果的对照比较
A =-4 -1 2-3 0 3-2 1 4>> A\' //转置矩阵ans =-4 -3 -2-1 0 12 3 4>> A\'==A.\' //另一种转置,只有复数时两种转置不一致ans = //因此得到的逻辑矩阵为全真1 1 11 1 11 1 1>> flipud(A)// 上下翻转ans =-2 1 4-3 0 3-4 -1 2>> fliplr(A) //左右翻转ans =2 -1 -43 0 -34 1 -2>> rot90(A) //逆时针旋转90度ans =2 3 4-1 0 1-4 -3 -2
- 矩阵复制法拓展
>> A=reshape(1:9,3,3)A =1 4 72 5 83 6 9>> A(4,4)=1111A =1 4 7 02 5 8 03 6 9 00 0 0 1111>> A(:,6)=2222A =1 4 7 0 0 22222 5 8 0 0 22223 6 9 0 0 22220 0 0 1111 0 2222
- d
- d
- s
- s
- s
- sSD
- S
- S
- S
- S
- S
- S
- S
- S
请发表评论