matlab矩阵函数总结

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=1
m =  1 
>> m(1,2)=2       
 m = 1     2 
 
>> m(2,1)=3
m =
     1     2
     3     0
  • matlab矩阵、数组可以动态改变形状 reshape
>> A=-4:4
 
A =
 
    -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     1
     2     3     4
 
>> A'==A.' //另一种转置,只有复数时两种转置不一致
 
ans = //因此得到的逻辑矩阵为全真
 
     1     1     1
     1     1     1
     1     1     1
 
>> flip ud (A)// 上下翻转
 
ans =
 
    -2     1     4
    -3     0     3
    -4    -1     2
 
>> flip lr (A) //左右翻转
 
ans =
 
     2    -1    -4
     3     0    -3
     4     1    -2
 
>> rot90(A) //逆时针旋转90度
 
ans =
 
     2     3     4
    -1     0     1
    -4    -3    -2
  • 矩阵复制法拓展
>> A=reshape(1:9,3,3)
 
A =
 
     1     4     7
     2     5     8
     3     6     9
 
>> A(4,4)=1111
 
A =
 
           1           4           7           0
           2           5           8           0
           3           6           9           0
           0           0           0        1111
 
>> A(:,6)=2222
A =
 
           1           4           7           0           0        2222
           2           5           8           0           0        2222
           3           6           9           0           0        2222
           0           0           0        1111           0        2222
  • d
  • d
  • s
  • s
  • s
  • sSD
  • S
  • S
  • S
  • S
  • S
  • S
  • S
  • S





转载于:https://www.cnblogs.com/geekvc/p/4660782.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值