matlab基本操作

  1. 一些操作Tips:

    • clear:清空Workspace clc:清空Command Window
    • 批量修改变量名:shift+enter(只针对变量第一次出现时)
    • 控制输出格式:format
      format short:小数点后4位,之后输出的数都按此格式
    • digits(4) vpa(x) 一起用控制x输出为4位有效数字。或者直接vpa(x,4)
    • 批量注释:ctrl+R 取消注释:ctrl+T
    • 单步调试:F10
    • 查看变量:who(只列举) whos(附带变量空间大小、字节数等信息)
  2. 文件操作:

    • save filename x1 x2 x3 (-append)
      存储变量值至filename.mat文件,默认存储至matlab.mat文件。-append追加存储,默认为覆盖存储
    • load filename x1 x2 x3:加载变量,默认为加载所有变量。会覆盖Workspace同名变量
  3. 函数.m文件定义
    function [y1,y2] = fun(x1,x2) y1,y2…是输出变量,直接在函数内参与运算,函数内不要写clear,会清掉输入变量

  4. 字符串操作:
    eval(‘xxx’):执行字符串所对应的matlab语句
    str2num(‘xxx’):将数字字符串转化为数字
    num2str(xxx):将数字转化为数字字符串
    取字符串特定字符:str(2)
    字符串拼接:str=[str1,str2]
    abs(‘x’)函数:求字符x的ASCII码
    char(x):求ASCII码为x的字符

matlab矩阵操作

  1. 矩阵的建立: a=[1 2 3;4 5 6;7 8 9]
    矩阵取元素:

    • 下标:a(2,3),行、列皆从1开始
    • 序号:a(8),按列计数
  2. 冒号表达式建立行向量 x=5:2:20

  3. 矩阵拼接:直接中括号拼接[ ]

  4. 矩阵拆分: b=a(2:4,5:6),b为矩阵a2~4行5~6列的内容。
    用end来表示最后一行/列,用冒号:表示所有行/列
    b=a(:),按矩阵a元素的【排列顺序】取元素,最终排成列向量

  5. 矩阵查找特定元素:
    num/[rows,cols,vals]=find(A>10),找矩阵A中所有>10的数。一个返回值为序号,两个返回值即为下标,三个返回值加上值。

  6. 矩阵转置:B=A’

  7. 删除矩阵元素,对矩阵整行/整列元素置空,后面元素序号前补 a(2,:)=[]

  8. 复制矩阵 repat(<矩阵名>,x,y),以此矩阵为“一块”复制x行,y列

  9. 矩阵计算:直接+-/
    /为右除 \为左除 /即为乘矩阵的逆
    .
    和./为点乘点除,矩阵对应元素的乘除。
    注意:矩阵的幂^和矩阵元素的幂.^不一样

  10. A(:)表示以一列的方式显示矩阵A中所有元素

  11. size(A,1)矩阵的行数,size(A,2)矩阵的列数

  12. 特殊矩阵的建立
    zeros:零矩阵 zeros(x,y):x行y列零矩阵
    ones:1矩阵
    eye:单位矩阵
    rand:随机矩阵,元素为0~1随机数的矩阵
    rand(a,b)表示产生a行b列随机数
    产生a到b之间的x行y列随机矩阵:a+(b-a) * rand(x,y)
    randn:均值为0,方差为1的标准正态分布的随机矩阵
    inv():求方程组的逆矩阵
    diff():计算差分(后项减前项)
    diag():构建对角矩阵(输入向量)or从矩阵中取对角线(输入矩阵)

matlab绘图

  1. 绘制函数图形标识符:legend(‘’,’’,’’)
    多个图例要依据添加对应数据的顺序依次加入

  2. plot(x,y)
    最基本的绘图函数
    画多条函数plot(x,y1,x,y2,x,y3….)

  3. 设置线型和线的粗细:plot(x,y,’-.’,’linewidth’,1.5);可通过线型、点型和颜色改变线条外观,粗细设置尤为重要。
    更改坐标范围:axis([Xmin, Xmax, Ymin, Ymax])、xlim([Xmin, Xmax])、ylim([Ymin, Ymax])
    坐标轴名字(并设置字体):xlabel(‘titke’,’fontsize’,12)

  1. loglog(),semilogx(),semilogy()函数分别以
    两坐标轴为log10刻度,x轴为log10刻度,y轴为log10刻度作函数图

  2. plotyy(x,y1,x,y2)双y轴作图

  3. errorbar(y,E)函数,E为1/2误差长度的向量
    在函数上标明误差(对应离散点作图,且x/y和E向量长度相等)

  4. fplot(‘<M文件名>’,[范围])
    调用M文件函数绘图,有范围限制

  5. ezplot(‘函数表达式’,[x范围],[y范围])
    隐函数绘图。easy plot,直接写函数表达式即可绘图

  6. polar(x,y)、ezpolar(‘函数表达式’)
    极坐标绘图,(ρ,Θ)

  7. hist(data,<区间数>)
    绘制频数分布直方图,频数总分数默认10份

  8. 对图形的修改可直接在figur面板上进行

解线性方程组

  1. 基本概念
    tol:误差
    rank(A):返回矩阵A的秩
    size(A,1):返回矩阵A的行数
    size(A,2):返回矩阵A的列数
    null(A):求齐次方程组的解
    det(A):求【方阵】的行列式
    diag(diag(A)):构造矩阵A的对角线矩阵
    norm(A):求向量A的范数(向量中各元素的平方和再开根号)
    可用来求两向量的的“差值”norm(A-B)

  2. 左除法:matlab一般用inv()<方阵求逆>、pinv()<非方阵求伪逆>来代替左除。
    左除法分三种情况:
    恰定方程组:rank(A) = rank([A,b]) = n,方程组有唯一解
    欠定方程组:rank(A) = rank([A,b]) < n,方程组有无穷解,通解用”特解+对应齐次方程组解”来表示。
    超定方程组:rank(A) != rank([A,b]),方程组无解,求出的是最小二乘解。

  1. [r]=eig(A):求矩阵A的特征值r<列向量形式>
    [x,r]=eig[A]:求矩阵A的特征向量x和特征值r<对角矩阵形式>
    使Ax=xr
    max(max(abs(r))):找绝对值最大的特征值

Post Date: 2018-01-20

版权声明: 本文为原创文章,转载请注明出处