fprintf('End of test.m!\\n'); Disp:
n=[2 0 8]
disp(['文字 ' int2str(n(1)) ' 文字']) Saveas:
怎样自动save fig文件。用saveas(gcf,'文件名','fig'); gcf指current figure,fig也可以是emf
Dlmwrite:
dlmwrite('e1.dat',d1) % 缺省为逗号,将d1中的数据写入e1.dat中。
dlmwrite('a.txt',data,'delimiter','\\t','newline','pc')
单引号:
两个连续的单引号输出一个单引号 sprintf('xi''an') fy=fopen('strt.txt','wt'); fprintf(fy,'%s','s16sin_1 s16cos_1 temperature_1 s16sin_2 s16cos_2 temperature_2') ; fclose(fy); dlmwrite('strt.txt',data,'-append','delimiter','\\t','newline','pc','roffset',1)
6 矩阵
6.1 矩阵方向转换
flipud,fliplr
6.2 删除某些行
a(3,:)=[]
26
6.3 矩阵点乘
.*:前后都是矩阵并且行列均相等,对应元素相乘 ./:前数后矩阵,或前后都矩阵并且行列均相等 .^3:前矩阵,每个元素3次方
特征值 Eig(A)
7 多项式
多项式基本函数 conv :卷积 deconv :反卷积
poly :求已知根的多项式 polyder :多项式求导
polyeig :多项式特征值问题 polyfit :曲线拟和 polyval :多项式求值
polyvalm :矩阵多项式求值 residue :两个多项式的比值 roots :多项式求根 collect 合并同类项
expand 将乘积展开为和式
factor 将多项式转化为乘积形式 regress 线性回归 lsqcurvefit 最小二乘拟和 一个多项式的幂级数形式可表示为: p(x)= a0xn + a1xn-1 + … + an-1x + an 在MATLAB中,多项式用行向量表示,其元素为多项式的系数,且从左到右按降幂排列。如多项式 p(x)= ax+ ax+ … + ax + a 在MATLAB 中被表示为 p= [aa…aa] roots命令:多项式的根可用roots命令求解,如x=roots(p). polyval命令:可以用此命令计算多项式的值。如p(2.5)可用 27
y=polyval(p,2.5) 计算。 8 函数调用
function y=funS(x) y=1./(1-sin(x))
z=funS(0:0.1:pi/4)
9 数据显示
vpa(pi,780) % 从整数部分计算起取相应的位数
10 拟合
非线性最小二乘拟合
Lsqnonlin中P1和P2才是数据, lsqcurvefit中t,y是数据,(只用过lsqcurvefit)t,y分别为XDATA,YDATA 在lsqcurvefit的function中 function y=f0708_1(x,t)
y表示函数值,x表示需要被拟合的参数,t表示自变量
regress
polyfit x=0.5:0.5:3; y=2*x+1; [P,S]=polyfit(x,y,1);% P先为高次项系数
11 解方程
Fzero 用于解方程 X=fzero(@fun,x0) 或 X=fzero(inline(‘===’),x0)
28
Fsolve 用于解方程组,也可以解方程,解方程时效果不如fzero Solve-----方程(组)解析解
s=solve('(0.14-x)/sqrt(x*(1-x)/50)=1.65') s=solve(‘-------’,’--------’)
12 查找
12.1 find的应用
a=[3 2 3;2 2 3]; i=find(a>2) [c d]=find(a>2) [c d]
find((a<=3)&(a>=2))
I = find(X,K),返回X中第一个值是K的下标。
find(X,K,'first') find(X,K,'last')
12.2 找出一个列向量中最大值的值和坐标的方法
max(y)
[hang lie]=find(y>=max(y)) % (如果相同,都会查出来)
12.3 找出开始为上升的函数的第一个极值点
for i=2:550
if y(i) 13 插值 三次样条插值,y=spline(x0,y0,x) % 【可以外插,这个有龙格现象么?】 29 分段线性插值,y=interp1(x0,y0,x)【不能外插,】 【有没有可以外插的?像CarSim中那样】 14 控工 SYS = FEEDBACK(SYS1,SYS2) Y(s)b0sm???bm?1s?bm G(s)??U(s)a0sn???an?1s?annumerator:分子 denominator: 分母 num?[b0,b1,?,bn] den?[a0,a1,?,an] [r,p,k]=residue[num,den]; % 留数,余数的表示 [num,den]=residue[r,p,k]; step inpulse [m,p]=bode(num,den) [Gm,Pm,wcg,wcp]=margin(num,den);幅值裕量Gm和相位裕度裕量Pm(这两个越大快速性越好) ,并求出幅值裕量和相位裕量处相应的频率值wcg和wcp(相位裕量,这个月大,稳定性越好) [z,p]=tf2zp(num,den) pzmap(num,den) rank(A) 秩 Newsys=tf(sys) 将非传递函数形式的系统模型转化成传递函数模型 Newsys=zpk(sys) 将非零极点增益形式的系统模型转化成零极点增益模型 30