zoukankan      html  css  js  c++  java
  • 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
     
    >> flipud(A)// 上下翻转
     
    ans =
     
        -2     1     4
        -3     0     3
        -4    -1     2
     
    >> fliplr(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





    keep calm and carry on
  • 相关阅读:
    一个iOS图片选择器的DEMO(实现图片添加,宫格排列,图片长按删除,以及图片替换等功能)
    [小细节,大BUG]记录一些小问题引起的大BUG(长期更新....)
    利用runTime,实现以模型为主的字典转模型(注意与KVC的区别)
    项目总结(三)--- 关于版本控制器
    项目总结(一)--- 关于用到的设计模式
    EntityFramework与TransactionScope事务和并发控制
    Entity Framework与ADO.NET批量插入数据性能测试
    Mathtype公式位置偏上
    FreeSWITCH 加载模块过程解读
    FreeSWITCH调用第三方TTS 使用tts_commandline
  • 原文地址:https://www.cnblogs.com/geekvc/p/4660782.html
Copyright © 2011-2022 走看看