MATLAB学习笔记
常用命令
- 
quit: 退出命令
 - 
clc: 擦除MATLAB工作窗中的所有显示内容,相当于命令行中的clear
 - 
clf: 擦除MATLAB的当前图形窗中的图形
 - 
clear: 清除内存中的变量和函数
 - 
dir: 列出指定目录下的文件和子目录清单
 - 
cd: 改变当前工作子目录
 - 
disp: (在运行中)显示变量和文字内容
 - 
who: 检查内存变量
 - 
whos: 列出内存变量的详细情况
 - 
save: 关闭前将变量保存到某一文件中
 - 
load: 从之前保存的文件中恢复变量
 - 
help: 非常有用
 - 
lookfor: 查找相关指令
 - 
!之后可以加操作系统命令,如 !ls, !vim
 

求解方程组时,用除法比用逆矩阵好。
多项式
- 
用系数行向量表示:p=$[a_0 , a_1 , … , a_{n-1} , a_n ]$, ($p(x)= a_0 x_n + a_1 x_{n-1} + … + a_{n-1} x + a_{n} $).
 - 
可以用指令产生多项式系数向量: p=poly(AR). 如果AR是方阵,则多项式为特征多项式,如果AR为向量,则AR为多项式的解。
 - 
poly2str函数
 
一些常用多项式运算指令
- 
R=roots(p) 求多项式向量p的根
 - 
PA=polyval(p,S) 按照数组运算规则计算多项式值。 p为多项式,S为矩阵。 相当于求值。
 - 
PM=polyvalm(p;S) 按照矩阵运算规则计算多项式值。p为多项式,S为矩阵。
 - 
P=polyfit(x,y,n) 用n阶多项式拟合x,y向量给定的数据
 
数值积分
- 
S=quad(‘fname’,a,b,tol,trace) 自适用递推Simpson数值积分法
 - 
S=quad8(‘fname’,a,b,tol,trace) 自适用递推Newton-Cotes数值积分法
 - 
tol是精度,trace是是否画图
 - 
quad8比quad有更高的积分精度
 
非线性方程求解
- 
对于多项式函数求根,r=roots(p)
 - 
单变量非线性方程求解, z=fzero(‘fname’,x0,tol,trace)
 - 
一般非线性方程(组)求解, X=fsolve(‘fname’,X0)
 
文件读写
- 
fopen(“filename”,‘specifier’)
 - 
fread(fd,..)
 - 
fwrite()
 - 
fclose
 
符号计算
- 
可以用sym定义符号,如 sym(‘x’) 也可以用syms定义多个符号 syms a b c d
 - 
findsym() 来确认符号表达式中的符号
 
微积分运算
- 
diff(f) 函数f对符号变量x或字母表上最接近字母x的符号变量求导数
 - 
diff(f,t) 函数f对符号变量t求导数
 - 
diff(f,2) 和diff(f,t,2)可以用来求二阶导数
 - 
int(f)
 - 
int(f,t)
 - 
int(f,a,b) 和int(f,t,a,b)
 - 
limit(f) 当符号变量x(或最接近字母x的符号变量) ->0 时,函数f的极限
 - 
limit(f,t,a)
 - 
limit(f,t,a,‘left’) 左极限 limit(f,t,a,‘right’)右极限
 - 
symsum(s,t,a,b) 表示s中的符号变量t从a到b的级数和(t缺省时,同上)
 - 
taylor(f,n,a) 函数f对符号变量x(或…)在a点的n-1阶泰勒多项式(n缺省时值为6,a缺省时值为0)
 - 
solve(f,t) 对f中的符号变量t解方程f=0(t缺省值为x或…)
 - 
solve(f,g,..)可以求解方程组
 - 
dsolve(‘S’,‘s1’,‘s2’,…,‘x’)
 - 
collect 合并同类项
 - 
expand 将乘积展开为和式
 - 
horner 把多项式转换为嵌套表示形式
 - 
simplify 利用各种恒等式化简代数式,更强有力的函数simple
 - 
subs(S,old,new) 替换
 - 
subexpr(S) 将表达式S中的公共部分用sigma表示
 
MATLAB画图
- 
plot(x,y) 以向量x作为X轴,以向量y作为Y轴,绘制X-Y二维曲线
 - 
plot(x,y1,‘k’,x,y2,‘b-') 每条曲线的线型和颜色由字符串’cs’指定,其中c表示颜色,s表示线型
 

- 
可以加一些图形标记,如title, xlabel, ylabel, text,legend
 - 
axis([xmin,xmax,ymin,ymax]) 来设定坐标轴范围
 - 
hold on: 保持原有图形的基础上绘制新的图形
 - 
fplot(fname,lims,tol) lims为变量取值范围,tol为相对误差
 - 
loglog(x,y) 绘制双对数坐标图
 - 
semilogx(x,y) semilogy(x,y) 绘制单对数坐标图
 - 
polar(theta,rho) 用来绘制极坐标图
 

- 
plot3(x1,y1,z1,c1,x2,y2,z2,c2,…)
 - 
mesh(x,y,z,c)绘制三维网格图
 - 
surf(x,y,z) 绘制三维曲面图
 - 
view 指定视点
 - 
contour3 绘制等高线图
 
MATLAB程序设计
MATLAB有两种工作方式:一种是交互式的命令行工作方式,另一种是M文件的程序工作方式
M文件
M文件有两类:命令文件和函数文件。区别在于:命令文件没有输入参数,也不返回输出参数;而函数文件可以输入参数,也可以返回输出参数。
- 
input函数, A=input(提示信息,选项);
 - 
pause(延迟秒数) pause()直接暂停程序
 - 
Disp(输出项)
 
if选择语句
- 
结束时要加end,不需要加begin
 - 
else +if = elseif
 
switch语句
- 
结束要加end
 - 
default改为otherwise
 - 
case 值 后面没有冒号
 
for循环结构
for 循环变量= 表达式1: 表达式2 : 表达式3
    循环体
end
% 表达式1为初值, 表达式2为步长,表达式3为终值
for 循环变量=矩阵表达式 则遍历矩阵元素
while循环结构
- 结尾加end
 
函数文件
function 输出形参表=函数名(输入形参表)
    注释说明部分
    函数体
    
- 
当输出形参多余1个时,则应该用方括号括起来
 - 
参数可调, 用nargin和nargout实现
 - 
支持嵌套调用和递归
 - 
加global可以声明全局变量
 
参考资料:MATLAB 数学工具软件实例简明教程