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)


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

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

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

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

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

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

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

11. 对图形的修改可直接在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))):找绝对值最大的特征值

matlab一些函数用法:

  1. vpa(xxx,数字)
    四舍五入控制有效数字位数,xxx可以是数,也可是表达式。

  2. poly2sym(系数行向量,x)
    系数行向量->多项式,各项次数由系数数量控制

  3. 求线性规划问题:linprog()

  4. scatter()画散点图

  5. size(A):矩阵A的行、列数 size(A,1):A的行数 size(A,2):A的列数

  6. 常微分方程符号解:fun=dsolve(‘equ1’,’equ2’,’equ3’),fun即为最终求得的微分方程,默认对自变量t求导
    微分方程数值解:ode工具箱

  7. 对符号方程中特定符号进行替换:subs(fun,{‘a’,’b’},{3,5})
    可替换为特定数值、其他符号变量 可替换为数组:得到同阶数组

  8. 积分
    数值积分:integral(fun,xmin,xmax)
    符号积分:int()

  9. 解方程组
    solve:求方程组的符号解
    linsolve:求线性方程组数值解
    fsolve:求非线性方程组数值解

  10. matlab中没有求解不等式的函数,只能先解对应的等式再画图判断
    normpdf(x,mu,sigma) x(向量)的正态分布概率密度函数

  11. matlab插值函数:y=interp1(x0,y0,x,’spline’) spline为三次样条插值
    x0,y0为原始点 x为更密集的需求值点,y为求得的函数值,一般不推荐外插
    二维插值:z = interp2(x0,y0,z0,x,y,’spline’)

  12. 多项式拟合:[p]=polyfit(x,y,n) 和 y1=polyval(p,x1) p为降幂排列的阶数
    matlab拟合工具箱:cftool

  13. 最后legend加公式:legend(‘样本’,[‘y = ‘,sprintf(‘%.3fx^2+%.3fx%.3f’,p(1),p(2),p(3))]);

  14. 一些统计学名词:

    • SSE(残差平方和):The sum of squares due to error,越接近0越好。点对点误差平方,再加和
    • MSE(残差平方和均值):Mean squared error,SSE/n
    • RMSE:MSE开根号
    • SSR(回归平方和):预测数据与原始数据均值之差的平方,再加和。点对面
    • R-square(确定系数):[0,1],越接近1越好
    • Adjusted R-square(矫正后确定系数):对复杂模型的惩罚
  15. 求差分、求导都是用的diff函数

  16. 桌面文件路径:C:\Users\35055\Desktop.….
    读excel:A=xlsread(filename,sheet,’B3:C4’) sheet为对应数字
    写excel:直接粘贴

  17. 元胞数组:通过小括号()加下标访问,返回的是对应cell的格式。
    通过大括号{}加下标访问,返回的是对应cell的内容。

  18. excel不同的样本纵向排列,单个样本不同的变量/观测横向排列。
    但对于神经网络、支持向量机,样本横向排列,变量纵向排列

  19. Min-Max标准化:将矩阵的【每一行】进行标准化处理(针对模式识别智能算法)
    A=[1,2,3];
    A=mapminmax(A,0,1); 标准化到0~1之间
    [Y,PS] = mapminmax(X,YMIN,YMAX)
    Y = mapminmax(‘apply’,X,PS)
    X = mapminmax(‘reverse’,Y,PS)

  20. legend加公式 legend(‘样本’,[‘y = ‘,sprintf(‘%.3fx^2+%.3fx%.3f’,p(1),p(2),p(3))]);

  21. rng(2),设置随机数种子。之后rand()产生的随机数都是一定的


Post Date: 2018-01-20

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