matlab基本操作
一些操作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(附带变量空间大小、字节数等信息)
文件操作:
- save filename x1 x2 x3 (-append)
存储变量值至filename.mat文件,默认存储至matlab.mat文件。-append追加存储,默认为覆盖存储 - load filename x1 x2 x3:加载变量,默认为加载所有变量。会覆盖Workspace同名变量
- save filename x1 x2 x3 (-append)
函数.m文件定义
function [y1,y2] = fun(x1,x2) y1,y2…是输出变量,直接在函数内参与运算,函数内不要写clear,会清掉输入变量字符串操作:
eval(‘xxx’):执行字符串所对应的matlab语句
str2num(‘xxx’):将数字字符串转化为数字
num2str(xxx):将数字转化为数字字符串
取字符串特定字符:str(2)
字符串拼接:str=[str1,str2]
abs(‘x’)函数:求字符x的ASCII码
char(x):求ASCII码为x的字符
matlab矩阵操作
矩阵的建立: a=[1 2 3;4 5 6;7 8 9]
矩阵取元素:- 下标:a(2,3),行、列皆从1开始
- 序号:a(8),按列计数
冒号表达式建立行向量 x=5:2:20
矩阵拼接:直接中括号拼接[ ]
矩阵拆分: b=a(2:4,5:6),b为矩阵a2~4行5~6列的内容。
用end来表示最后一行/列,用冒号:表示所有行/列
b=a(:),按矩阵a元素的【排列顺序】取元素,最终排成列向量矩阵查找特定元素:
num/[rows,cols,vals]=find(A>10),找矩阵A中所有>10的数。一个返回值为序号,两个返回值即为下标,三个返回值加上值。矩阵转置:B=A’
删除矩阵元素,对矩阵整行/整列元素置空,后面元素序号前补 a(2,:)=[]
复制矩阵 repat(<矩阵名>,x,y),以此矩阵为“一块”复制x行,y列
矩阵计算:直接+-/
/为右除 \为左除 /即为乘矩阵的逆
.和./为点乘点除,矩阵对应元素的乘除。
注意:矩阵的幂^和矩阵元素的幂.^不一样A(:)表示以一列的方式显示矩阵A中所有元素
size(A,1)矩阵的行数,size(A,2)矩阵的列数
特殊矩阵的建立
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绘图
绘制函数图形标识符:legend(‘’,’’,’’)
多个图例要依据添加对应数据的顺序依次加入plot(x,y)
最基本的绘图函数
画多条函数plot(x,y1,x,y2,x,y3….)设置线型和线的粗细:plot(x,y,’-.’,’linewidth’,1.5);可通过线型、点型和颜色改变线条外观,粗细设置尤为重要。
更改坐标范围:axis([Xmin, Xmax, Ymin, Ymax])、xlim([Xmin, Xmax])、ylim([Ymin, Ymax])
坐标轴名字(并设置字体):xlabel(‘titke’,’fontsize’,12)
loglog(),semilogx(),semilogy()函数分别以
两坐标轴为log10刻度,x轴为log10刻度,y轴为log10刻度作函数图plotyy(x,y1,x,y2)双y轴作图
errorbar(y,E)函数,E为1/2误差长度的向量
在函数上标明误差(对应离散点作图,且x/y和E向量长度相等)fplot(‘<M文件名>’,[范围])
调用M文件函数绘图,有范围限制ezplot(‘函数表达式’,[x范围],[y范围])
隐函数绘图。easy plot,直接写函数表达式即可绘图polar(x,y)、ezpolar(‘函数表达式’)
极坐标绘图,(ρ,Θ)hist(data,<区间数>)
绘制频数分布直方图,频数总分数默认10份对图形的修改可直接在figur面板上进行
解线性方程组
基本概念
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)左除法:matlab一般用inv()<方阵求逆>、pinv()<非方阵求伪逆>来代替左除。
左除法分三种情况:
恰定方程组:rank(A) = rank([A,b]) = n,方程组有唯一解
欠定方程组:rank(A) = rank([A,b]) < n,方程组有无穷解,通解用”特解+对应齐次方程组解”来表示。
超定方程组:rank(A) != rank([A,b]),方程组无解,求出的是最小二乘解。
- [r]=eig(A):求矩阵A的特征值r<列向量形式>
[x,r]=eig[A]:求矩阵A的特征向量x和特征值r<对角矩阵形式>
使Ax=xr
max(max(abs(r))):找绝对值最大的特征值
Post Date: 2018-01-20
版权声明: 本文为原创文章,转载请注明出处