MATLAB常用程序集合
- 格式:pdf
- 大小:526.80 KB
- 文档页数:11
MATLAB算术运算符、关系运算符、逻辑运算符、按位集合运算符算术运算符MATLAB允许两种不同类型的算术运算 -•矩阵算术运算•数组算术运算矩阵算术运算与线性代数中定义的相同。
在一维和多维数组中,逐个元素执行数组运算。
矩阵运算符和数组运算符由句点符号(.)区分。
然而,由于对于矩阵和阵列的加减运算是相同的,因此对于这两种情况,运算符相同。
下表简要说明了算术运算符 -算术运算符示例代码的大小,除非是标量。
可以从任何大小的矩阵中减去标量。
矩阵乘法。
C = A * B是矩阵A和B的线性代数乘积。
更准确地说,执行公式:,对于非标量A和B,A的列数必须等于B的行数。
标量可以乘以任何大小的矩阵。
阵列乘法。
A .* B是数组A和B的逐个元素乘积。
A和B必须具有相同的关系运算符关系运算符也可以用于标量和非标量数据。
数组的关系运算符在两个数组之间执行逐个元素的比较,并返回相同大小的逻辑数组,如果为真,则元素设置为逻辑1(true),如果为假,则元素设置为逻辑0(false)。
下表显示了MATLAB中可用的关系运算符:关系运算符示例代码操作符说明描述< 小于<= 小于或等于> 大于>= 大于或等于== 等于~= 不等于逻辑运算符MATLAB提供两种类型的逻辑运算符和函数:•逐元素 - 这些运算符对逻辑阵列的相应元素进行操作。
•短路 - 这些运算符在标量和逻辑表达式上运行。
元素逻辑运算符在逻辑数组上运行逐个元素。
符号&,|和〜是逻辑数组运算符AND,OR和NOT。
短路逻辑运算符允许逻辑运算短路。
符号&&和||是逻辑短路运算符AND和OR。
逻辑运算符示例代码位运算按位运算符对位执行,并执行逐位运算。
&,|和^的真值表如下 -假设A = 60和B = 13; 现在以二进制格式,它们将如下所示:A = 0011 1100B = 0000 1101-----------------A&B = 0000 1100A|B = 0011 1101A^B = 0011 0001~A = 1100 0011ShellMATLAB提供了诸如“按位与”和“按位或”以及“按位非”操作,移位操作等位操作的各种功能。
matlab集合运算Matlab是一种功能强大的数学计算和编程工具,它提供了丰富的集合运算函数,可以方便地对集合进行各种操作和计算。
本文将介绍一些常用的Matlab集合运算函数,并展示它们的用法和效果。
一、集合的定义和表示在Matlab中,集合可以用一维数组来表示,每个元素表示集合中的一个元素。
例如,我们可以用数组A=[1,2,3,4,5]表示一个包含5个元素的集合A。
二、集合的基本运算1. 并集运算并集运算是指将两个集合合并为一个集合,其中包含两个集合中的所有元素,且不重复。
在Matlab中,可以使用union函数实现并集运算。
例如,对于集合A和集合B,可以使用C=union(A,B)得到它们的并集C。
2. 交集运算交集运算是指找出两个集合中共同存在的元素,形成一个新的集合。
在Matlab中,可以使用intersect函数实现交集运算。
例如,对于集合A和集合B,可以使用C=intersect(A,B)得到它们的交集C。
3. 差集运算差集运算是指找出一个集合中存在,而另一个集合中不存在的元素,形成一个新的集合。
在Matlab中,可以使用setdiff函数实现差集运算。
例如,对于集合A和集合B,可以使用C=setdiff(A,B)得到A中存在而B中不存在的元素构成的集合C。
4. 补集运算补集运算是指找出一个集合中不属于另一个集合的所有元素,形成一个新的集合。
在Matlab中,可以使用setxor函数实现补集运算。
例如,对于集合A和集合B,可以使用C=setxor(A,B)得到A和B 的补集C。
三、集合的比较运算1. 子集判断子集判断是指判断一个集合是否是另一个集合的子集。
在Matlab 中,可以使用issubset函数进行子集判断。
例如,对于集合A和集合B,可以使用tf=issubset(A,B)判断A是否是B的子集,返回值tf为逻辑值。
2. 相等判断相等判断是指判断两个集合是否相等,即两个集合中的元素完全相同。
Matlab数值积分程序集合[图书馆+网络收集]近来学习数值积分,手头积累了不少程序,也拿来和各位朋友分享一下。
主要是来自数值积分教材和网络,基本的原理也就不打算多说了,随便搜索一下就可以得到,那就开始上代码了,呵呵,非原创,但是全部验证过,有疑问可以给我e-mail:1 梯形数值积分的MATLAB主程序function T=rctrap(fun,a,b,m)%fun 函数,a 积分上限 b积分下限 m 递归次数n=1;h=b-a; T=zeros(1,m+1); x=a;T(1)=h*(feval(fun,a)+feval(fun,b))/2;for i=1:mh=h/2; n=2*n; s=0;for k=1:n/2x=a+h*(2*k-1); s=s+feval(fun,x);endT(i+1)=T(i)/2+h*s;endT=T(1:m);e.g运行后屏幕显示精确值F s,用rctrap计算的递归值T和T与精确值F s的绝对误差w T>> ) exp((-x^.2./2)./(sqrt(2*pi)))T=rctrap(fun,0,pi/2,14), syms tfi=int(exp((-t^2)/2)/(sqrt(2*pi)),t,0, pi/2);Fs= double(fi), wT= double(abs(fi-T))fun =@(x)exp((-x^.2./2)./(sqrt(2*pi)))T =Columns 1 through 71.4168 1.3578 1.3313 1.3195 1.3142 1.3119 1.3109Columns 8 through 141.3105 1.3103 1.3102 1.3102 1.3101 1.3101 1.3101Fs =0.4419wT =Columns 1 through 70.9749 0.9159 0.8894 0.8776 0.8723 0.8700 0.8690Columns 8 through 140.8686 0.8684 0.8683 0.8683 0.8683 0.8682 0.8682>>2 复合辛普森(Simpson)数值积分的MATLAB主程序function y=comsimpson(fun,a,b,n)% fun 函数 a 积分上限 b积分下限 n 分割小区间数z1=feval (fun,a)+ feval (fun,b);m=n/2;h=(b-a)/(2*m); x=a;z2=0; z3=0; x2=0; x3=0;for k=2:2:2*mx2=x+k*h; z2= z2+2*feval (fun,x2);for k=3:2:2*mx3=x+k*h; z3= z3+4*feval (fun,x3);endy=(z1+z2+z3)*h/3;由于Matlab自带了 quad就是这个算法所以比较少自己编3 龙贝格数值积分的MATLAB主程序function [RT,R,wugu,h]=romberg(fun,a,b, wucha,m)%fun被积函数 a,b积分上下限 wucha两次相邻迭代绝对差值 m 龙贝格积分表最大行数%RT 龙贝格积分表 R 数值积分结果 wucha 误差估计 h 最小步长n=1;h=b-a; wugu=1; x=a;k=0; RT=zeros(4,4);RT(1,1)=h*(feval(fun,a)+feval(fun,b))/2;while((wugu>wucha)&(k<m)|(k<4))k=k+1; h=h/2; s=0;for j=1:nx=a+h*(2*j-1); s=s+feval(fun,x);endRT(k+1,1)= RT(k,1)/2+h*s; n=2*n;for i=1:kRT(k+1,i+1)=((4^i)*RT(k+1,i)-RT(k,i))/(4^i-1);endwugu=abs(RT(k+1,k)-RT(k+1,k+1));endR=RT(k+1,k+1);>> F=inline('1./(1+x)'); [RT,R,wugu,h]=romberg(F,0,1.5,1.e-8,13) syms xfi=int(1/(1+x),x,0,1.5); Fs=double(fi),wR=double(abs(fi-R)), wR1= wR - wuguRT =1.0500 0 0 00 00.9536 0.9214 0 00 00.9260 0.9168 0.9165 00 00.9187 0.9163 0.9163 0.91630 00.9169 0.9163 0.9163 0.9163 0.91630.9164 0.9163 0.9163 0.9163 0.9163 0.9163R =0.9163wugu =2.9436e-011h =0.0469Fs =0.9163wR =9.8007e-011wR1 =6.8571e-011>>6 复合梯形法function [I,step] = CombineTraprl(f,a,b,eps)%f 被积函数%a,b 积分上下限%eps 精度%I 积分结果%step 积分的子区间数if(nargin ==3)eps=1.0e-4;endn=1;h=(b-a)/2;I1=0;I2=(subs(sym(f),findsym(sym(f)),a)+subs(sym(f),findsym(sym(f)),b))/h; while abs(I2-I1)>epsn=n+1;h=(b-a)/n;I1=I2;I2=0;for i=0:n-1x=a+h*i;x1=x+h;I2=I2+(h/2)*(subs(sym(f),findsym(sym(f)),x)+subs(sym(f ),findsym(sym(f)),x1));endendI=I2;step=n;7 辛普森法function [I,step] = IntSimpson(f,a,b,type,eps)%type = 1 辛普森公式%type = 2 辛普森3/8公式%type = 3 复合辛普森公式if(type==3 && nargin==4)eps=1.0e-4; %缺省精度为0.0001endI=0;switch typecase 1,I=((b-a)/6)*(subs(sym(f),findsym(sym(f)),a)+...4*subs(sym(f),findsym(sym(f)),(a+b)/2)+...subs(sym(f),findsym(sym(f)),b));step=1;case 2,I=((b-a)/8)*(subs(sym(f),findsym(sym(f)),a)+...3*subs(sym(f),findsym(sym(f)),(2*a+b)/3)+ ...3*subs(sym(f),findsym(sym(f)),(a+2*b)/3)+subs(sym( f),findsym(sym(f)),b));step=1;case 3,n=2;h=(b-a)/2;I1=0;I2=(subs(sym(f),findsym(sym(f)),a)+subs(sym(f),findsym (sym(f)),b))/h;while abs(I2-I1)>epsn=n+1;h=(b-a)/n;I1=I2;I2=0;for i=0:n-1x=a+h*i;x1=x+h;I2=I2+(h/6)*(subs(sym(f),findsym(sym(f )),x)+...4*subs(sym(f),findsym(sym(f)), (x+x1)/2)+...subs(sym(f),findsym(sym(f)),x1 ));endendI=I2;step=n;end8 牛顿-科茨法function I = NewtonCotes(f,a,b,type)%type = 1 科茨公式%type = 2 牛顿-科茨六点公式%type = 3 牛顿-科茨七点公式I=0;switch typecase 1,I=((b-a)/90)*(7*subs(sym(f),findsym(sym(f)),a)+...32*subs(sym(f),findsym(sym(f)),(3*a+b)/4)+...12*subs(sym(f),findsym(sym(f)),(a+b)/2)+...32*subs(sym(f),findsym(sym(f)),(a+3*b)/4)+7*su bs(sym(f),findsym(sym(f)),b));case 2,I=((b-a)/288)*(19*subs(sym(f),findsym(sym(f)),a)+...75*subs(sym(f),findsym(sym(f)),(4*a+b)/5)+...50*subs(sym(f),findsym(sym(f)),(3*a+2*b)/5)+...50*subs(sym(f),findsym(sym(f)),(2*a+3*b)/5)+...75*subs(sym(f),findsym(sym(f)),(a+4*b)/5)+19*s ubs(sym(f),findsym(sym(f)),b));case 3,I=((b-a)/840)*(41*subs(sym(f),findsym(sym(f)),a)+...216*subs(sym(f),findsym(sym(f)),(5*a+b)/6)+...27*subs(sym(f),findsym(sym(f)),(2*a+b)/3)+...272*subs(sym(f),findsym(sym(f)),(a+b)/2)+...27*subs(sym(f),findsym(sym(f)),(a+2*b)/3)+...216*subs(sym(f),findsym(sym(f)),(a+5*b)/6)+41* subs(sym(f),findsym(sym(f)),b));end9 高斯公式function I = IntGauss(f,a,b,n,AK,XK)if(n<5 && nargin == 4)AK = 0;XK = 0;elseXK1=((b-a)/2)*XK+((a+b)/2);I=((b-a)/2)*sum(AK.*subs(sym(f),findsym(f),XK1));endta = (b-a)/2;tb = (a+b)/2;switch ncase 0,I=2*ta*subs(sym(f),findsym(sym(f)),tb);case 1,I=ta*(subs(sym(f),findsym(sym(f)),ta*0.5773503+tb)+...subs(sym(f),findsym(sym(f)),-ta*0.5773503+tb));case 2,I=ta*(0.55555556*subs(sym(f),findsym(sym(f)),ta*0.7745 967+tb)+...0.55555556*subs(sym(f),findsym(sym(f)),-ta*0.7 745967+tb)+...0.88888889*subs(sym(f),findsym(sym(f)),tb));case 3,I=ta*(0.3478548*subs(sym(f),findsym(sym(f)),ta*0.86113 63+tb)+...0.3478548*subs(sym(f),findsym(sym(f)),-ta*0.86 11363+tb)+...0.6521452*subs(sym(f),findsym(sym(f)),ta*0.339 8810+tb)...+0.6521452*subs(sym(f),findsym(sym(f)),-ta*0.3 398810+tb));case 4,I=ta*(0.2369269*subs(sym(f),findsym(sym(f)),ta*0.90617 93+tb)+...0.2369269*subs(sym(f),findsym(sym(f)),-ta*0.90 61793+tb)+...0.4786287*subs(sym(f),findsym(sym(f)),ta*0.538 4693+tb)...+0.4786287*subs(sym(f),findsym(sym(f)),-ta*0.5 384693+tb)+...0.5688889*subs(sym(f),findsym(sym(f)),tb)); end10 区间逐次分半梯形法function q=DblTraprl(f,a,A,b,B,m,n)if(m==1 && n==1) %梯形公式q=((B-b)*(A-a)/4)*(subs(sym(f),findsym(sym(f)),{a,b})+...subs(sym(f),findsym(sym(f)),{a,B})+...subs(sym(f),findsym(sym(f)),{A,b})+...subs(sym(f),findsym(sym(f)),{A,B}));else %复合梯形公式 C=4*ones(n+1,m+1);C(1,:)=2;C(:,1)=2;C(n+1,:)=2;C(:,m+1)=2;C(1,1)=1;C(1,m+1)=1;C(n+1,1)=1;C(n+1,m+1)=1; %C矩阵endF=zeros(n+1,m+1);q=0;for i=0:nfor j=0:mx=a+i*(A-a)/n;y=b+j*(B-b)/m;F(i+1,j+1)=subs(sym(f),findsym(sym(f)),{x,y});q=q+F(i+1,j+1)*C(i+1,j+1);endendq=((B-b)*(A-a)/4/m/n)*q;11 区间逐次分半布尔法function [I,step] = DDBuer(f,a,b,eps)if(nargin==3)eps=1.0e-4;end;n=1;h=b-a;I1=0;I2=(subs(sym(f),findsym(sym(f)),a)+subs(sym(f),findsym(sym(f)),b))/h/ 2;tol=1;while tol>epsn=n+1;h=h/4;I1=I2;I2=0;for i=0:(4^(n-1)-1)x=a+h*4*i;x1=x+h;x2=x1+h;x3=x2+h;x4=x3+h;I2=I2+(2*h/45)*(7*subs(sym(f),findsym(sym(f)),x)+...32*subs(sym(f),findsym(sym(f)),x1)+...12*subs(sym(f),findsym(sym(f)),x2)+...32*subs(sym(f),findsym(sym(f)),x3)+...7*subs(sym(f),findsym(sym(f)),x4));endtol=abs(I2-I1);endI=I2;step=n;10 自适应求积法function I=SmartSimpson(f,a,b,eps)if(nargin==3)eps=1.0e-4;end;e=5*eps;I=SubSmartSimpson(f,a,b,e);function q=SubSmartSimpson(f,a,b,eps)QA=IntSimpson(f,a,b,1,eps);QLeft=IntSimpson(f,a,(a+b)/2,1,eps);QRight=IntSimpson(f,(a+b)/2,b,1,eps);if(abs(QLeft+QRight-QA)<=eps)q=QA;elseq=SubSmartSimpson(f,a,(a+b)/2,eps)+SubSmartSimpson(f,(a+b)/2,b ,eps);ende.g>> SmartSimpson('x*sin(x)',0,1)ans =0.3011>>。
matlab交集和并集Matlab是一种高级计算机语言和环境,常用于科学计算、数据分析和工程应用。
其中,交集和并集是两个常用的集合操作,可以在Matlab中通过多种方式进行计算和操作。
本文将介绍Matlab中交集和并集的定义、符号表示以及使用示例。
一、交集在数学中,交集指的是两个或多个集合中共有的元素构成的新集合。
在Matlab中,可以使用“&”符号来表示交集操作。
示例1:计算两个向量的交集```matlabA = [1 2 3 4];B = [3 4 5 6];C = A & B;disp(C);```在上述示例中,A和B分别代表两个向量,将A和B进行交集操作后,将结果赋值给向量C。
执行程序后,控制台会输出交集结果C。
在上述示例中,输出结果为[0 0 1 1],表示在A和B中,下标为3和4的元素是共有的。
示例2:计算两个矩阵的交集```matlabA = [1 2 3; 4 5 6; 7 8 9];B = [4 5 6; 1 2 3; 7 8 9];C = A & B;disp(C);```在上述示例中,A和B分别代表两个矩阵,将A和B进行交集操作后,将结果赋值给矩阵C。
执行程序后,控制台会输出交集结果C。
在上述示例中,输出结果是一个逻辑矩阵,表示在A和B中,对应位置上的元素是否相同。
二、并集在数学中,并集指的是两个或多个集合中的所有元素组合而成的新集合。
在Matlab中,可以使用“|”符号来表示并集操作。
示例1:计算两个向量的并集```matlabA = [1 2 3 4];B = [3 4 5 6];C = A | B;disp(C);```在上述示例中,A和B分别代表两个向量,将A和B进行并集操作后,将结果赋值给向量C。
执行程序后,控制台会输出并集结果C。
在上述示例中,输出结果为[1 1 1 1 1 1],表示将A和B中所有的元素放在一个向量中。
示例2:计算两个矩阵的并集```matlabA = [1 2 3; 4 5 6; 7 8 9];B = [4 5 6; 1 2 3; 7 8 9];C = A | B;disp(C);```在上述示例中,A和B分别代表两个矩阵,将A和B进行并集操作后,将结果赋值给矩阵C。
Matlab常用命令集合1.常用命令-->管理命令和函数2.常用命令-->管理变量和工作区(输入输出、内存管理等)3.常用命令-->管理命令控制窗口(command窗口)4.常用命令-->文件和工作环境5.常用命令-->启动和退出Matlab6.语言结构和调试命令-->程序设计7.语言结构和调试命令-->流程控制8.语言结构和调试命令-->交互输入9.语言结构和调试命令-->面向对象编程10.语言结构和调试命令-->程序调试11.语言结构和调试命令-->lasterr,lastwarn12.创建图形用户界面-->对话框13.矩阵函数-数值线性代数-->矩阵分析14.矩阵函数-数值线性代数-->线性方程15.矩阵函数-数值线性代数-->特征值和奇异值16.矩阵函数-数值线性代数-->矩阵函数17.矩阵函数-数值线性代数-->低级函数18.创建图形用户界面-->用户界面对象19.创建图形用户界面-->其他函数20.创建图形用户界面-->其他函数21.图象可视化函数-->三维绘图函数22.图象可视化函数-->绘制标注和网络23.图象可视化函数-->体数据可视化24.图象可视化函数-->表面、网格和轮廓绘制25.图象可视化函数-->域生成26.图象可视化函数-->专门图形绘制27.图象可视化函数-->视觉控制28.图象可视化函数-->颜色操作29.图象可视化函数-->打印函数30.图象可视化函数-->图形图象处理31.双重函数和非线性数值方法32.多项式和插值函数-->多项式33.多项式和插值函数-->数据插值34.多项式命令补遗35.数组函数-->单元数组函数36.数组函数-->多维数组函数37.位操作函数、结构和对象函数38.底层文件输入输出函数39.底层文件输入输出函数-->特殊函数40.字符串函数-->常用函数41.字符串函数-->字符串操作42.字符串函数-->字符串和数值的转换43.字符串函数-->基转换44.声音处理函数-->常用声音函数45.声音处理函数-->特殊声音函数46.声音处理函数-->WAV声音文件47.稀疏矩阵函数-->基本稀疏矩阵48.稀疏矩阵函数-->满阵和稀疏矩阵的转换49.稀疏矩阵函数-->稀疏矩阵的非零元素操作50.稀疏矩阵函数-->稀疏矩阵的可视化51.稀疏矩阵函数-->排序算法52.稀疏矩阵函数-->范数、条件数和秩53.稀疏矩阵函数-->线性方程的稀疏系统54.稀疏矩阵函数-->线性方程的稀疏系统55.稀疏矩阵函数-->杂项函数56.数据分析和傅立叶变换-->基本运算57.数据分析和傅立叶变换-->有限差分58.数据分析和傅立叶变换-->相关59.数据分析和傅立叶变换-->滤波和卷积60.数据分析和傅立叶变换-->傅立叶变换61.数据分析和傅立叶变换-->向量函数62.数学函数和坐标变换-->基本数学函数63.数学函数和坐标变换-->特殊函数64.数学函数和坐标变换-->坐标变换65.矩阵和矩阵操作基础-->矩阵和数组基础66.矩阵和矩阵操作基础-->特殊变量和常量67.矩阵和矩阵操作基础-->时间和日期68.矩阵和矩阵操作基础-->矩阵操作69.矩阵和矩阵操作基础-->特殊函数矩阵70.运算符和逻辑函数-->算数运算符71.运算符和逻辑函数-->关系运算符72.运算符和逻辑函数-->特殊函数73.运算符和逻辑函数-->逻辑函数74.simulink的命令集75.rtw相关的命令1.常用命令-->管理命令和函数addpath 添加目录到MATLAB搜索路径doc 在Web浏览器上现实HTML文档help 显示Matlab命令和M文件的在线帮助helpwinhelpdesk helplookfor 在基于Matlab搜索路径的所有M文件中搜索关键字partialpath 部分路径名path 所有关于路径名的处理pathtool 一个不错的窗口路径处理界面rmpath 删除搜索路径中指定目录type 显示指定文件的内容ver 版本信息version 版本号web 打开web页what 列出当前目录吓所有的M文件 Mat文件和 Mex文件whatsnew 显示readme文件which 显示文件位置(返回)2.常用命令-->管理变量和工作区(输入输出、内存管理等) clear 从内存中删除disp 显示文本或数组内容length 数组长度(最长维数)load 重新载入变量(从磁盘上)mlock 锁定文件,防止文件被错误删除munlock 解锁文件openvar 在数组编辑器中打开变量pack 整理内存空间save 保存变量到文件 8*)size 数组维数who 列出内存变量whos 列出内存变量,同时显示变量维数workspace 显示工作空间窗口(返回)3.常用命令-->管理命令控制窗口(command窗口)clc 清空命令窗口echo 禁止或允许显示执行过程format 设置输出显示格式home 光标移动到命令窗口左上角more 设置命令窗口页输出格式(返回)4.常用命令-->文件和工作环境cd 改变工作目录copyfile 复制文件delete 删除文件和图形对象diary 把命令窗口的人机交互保存到文件dir 显示目录edit 编辑文本文件fileparts 返回文件的各个部分fullfile 使用指定部分建立文件全名inmem 返回内存(伪代码区)的matlab函数名ls 在unix系统中列出目录(win中亦可)matlabroot 根目录mkdir 新建目录open 打开文件pwd 显示当前目录tempdir 返回系统临时目录的名字tempname 随机给出一个临时字符串(可用作文件名)! 直接调用操作系统command命令(返回)5.常用命令-->启动和退出Matlabmatlabrc Matlab的启动M文件exit 退出Matlabquit 退出Matlabstartup 运行matlab启动文件(返回)6.语言结构和调试命令-->程序设计builtin 从可重载方法中调用内置函数eval 执行包含可执行表达式的字符串evalc 计算并返回表达式的值evalin 执行某个工作空间中的包含表达式的字符串feval 执行函数(从函数名或函数句柄)function 函数头global 定义全局变量nargchk 检查输入参数数目persistent 定义常量script 作为脚本的M文件(返回)7.语言结构和调试命令-->流程控制break 停止执行循环case case语句,switch语句一部分switch switch_exprcase case_exprstatmentscaseotherwiseendcatch try-catch语句一部分,捕捉程序else if条件语句一部分elseif if条件语句一部分end 终止for、while、switch、try和if语句error 显示错误信息for 循环语句一(确定次数)if if条件语句other switch语句一部分return 返回到调用函数switch 开关语句try try程序块warning 类似于disp,但可被禁止while 循环语句(次数不确定)(返回)8.语言结构和调试命令-->交互输入input 交互输入keyboard 在M文件中遇到keyboard时将在命令窗口产生交互直到输入return命令menu 为用户输入产生一个选择菜单pause 暂停(返回)9.语言结构和调试命令-->面向对象编程class 创建一个对象或者返回一个对象类double 转换为双精度inferiorto 亚类关系inline 创建一个内联函数int8,int16,int32 转换到符号整数isa 检查是否为所给类的对象loadobj load函数用户定义扩展saveobj save函数用户定义扩展single 转换为单精度superiorto 超类关系uint8,uint16,uint32 转换到无符号整数(返回)10语言结构和调试命令-->程序调试dbclear 断点清除dbcont 重新开始执行dbdown 改变当前工作空间dbmex 调试Mex文件dbquit 退出调试模式dbstack 显示函数调用堆栈dbstatus 列出所有断点dbstep 从断点处执行dbstop 设置断点dbtype 列出带行号的M文件内容dbup 改变当前工作空间(返回)11.语言结构和调试命令-->lasterr,lastwarnlasterr 返回Matlab中产生的最后一个异常信息。
MATLAB操作命令大全1.基本操作:- clear: 清除工作区中的所有变量。
- clc: 清除命令窗口的内容。
- close all: 关闭所有图形窗口。
- help function-name: 显示与函数相关的帮助文档。
- who: 显示当前工作区中的所有变量。
- save file-name: 保存当前工作区中的所有变量到指定的文件。
- load file-name: 从文件中加载变量到当前工作区。
2.变量操作:-=:赋值操作符,将右边的值赋给左边的变量。
-+:加法操作符。
--:减法操作符。
-*:乘法操作符。
-/:除法操作符。
-^:幂运算操作符。
- sqrt(x): 计算 x 的平方根。
- abs(x): 计算 x 的绝对值。
- max(x): 返回 x 中的最大值。
- min(x): 返回 x 中的最小值。
- sum(x): 计算 x 中所有元素的和。
3.数组操作:- zeros(m, n): 创建一个 m 行 n 列的全零数组。
- ones(m, n): 创建一个 m 行 n 列的全一数组。
- eye(n): 创建一个 n 行 n 列的单位矩阵。
- size(x): 返回 x 的维度。
- length(x): 返回 x 的长度。
- reshape(x, m, n): 将 x 重新排列为一个 m 行 n 列矩阵。
- transpose(x): 将 x 的行和列互换。
4.控制流程:- if-else: 条件语句,根据条件执行不同的代码块。
- for loop: 循环语句,执行指定次数的代码块。
- while loop: 循环语句,根据条件反复执行代码块。
- break: 在循环中使用,用来跳出当前循环。
- continue: 在循环中使用,用来跳过当前循环的剩余部分。
5.统计分析:- mean(x): 计算 x 的平均值。
- median(x): 计算 x 的中位数。
- std(x): 计算 x 的标准差。
matlab命令与程序清单(matlab commands and functions list)A aabs 绝对值、模、字符的ASCII码值acos 反余弦acosh 反双曲余弦acot 反余切acoth 反双曲余切acsc 反余割acsch 反双曲余割align 启动图形对象几何位置排列工具all 所有元素非零为真angle 相角ans 表达式计算结果的缺省变量名any 所有元素非全零为真area 面域图argnames 函数M文件宗量名asec 反正割asech 反双曲正割asin 反正弦asinh 反双曲正弦assignin 向变量赋值atan 反正切atan2 四象限反正切atanh 反双曲正切autumn 红黄调秋色图阵axes 创建轴对象的低层指令axis 控制轴刻度和风格的高层指令B bbar 二维直方图bar3 三维直方图bar3h 三维水平直方图barh 二维水平直方图base2dec X进制转换为十进制bin2dec 二进制转换为十进制blanks 创建空格串bone 蓝色调黑白色图阵box 框状坐标轴break while 或for 环中断指令brighten 亮度控制C ccapture (3版以前)捕获当前图形cart2pol 直角坐标变为极或柱坐标cart2sph 直角坐标变为球坐标cat 串接成高维数组caxis 色标尺刻度cd 指定当前目录cdedit 启动用户菜单、控件回调函数设计工具cdf2rdf 复数特征值对角阵转为实数块对角阵ceil 向正无穷取整cell 创建元胞数组cell2struct 元胞数组转换为构架数组celldisp 显示元胞数组内容cellplot 元胞数组内部结构图示char 把数值、符号、内联类转换为字符对象chi2cdf 分布累计概率函数chi2inv 分布逆累计概率函数chi2pdf 分布概率密度函数chi2rnd 分布随机数发生器chol Cholesky分解clabel 等位线标识cla 清除当前轴class 获知对象类别或创建对象clc 清除指令窗clear 清除内存变量和函数clf 清除图对象clock 时钟colorcube 三浓淡多彩交叉色图矩阵colordef 设置色彩缺省值colormap 色图colspace 列空间的基close 关闭指定窗口colperm 列排序置换向量comet 彗星状轨迹图comet3 三维彗星轨迹图compass 射线图compose 求复合函数cond (逆)条件数condeig 计算特征值、特征向量同时给出条件数condest 范–1条件数估计conj 复数共轭contour 等位线contourf 填色等位线contour3 三维等位线contourslice 四维切片等位线图conv 多项式乘、卷积cool 青紫调冷色图copper 古铜调色图cos 余弦cosh 双曲余弦cot 余切coth 双曲余切cplxpair 复数共轭成对排列csc 余割csch 双曲余割cumsum 元素累计和cumtrapz 累计梯形积分cylinder 创建圆柱D ddblquad 二重数值积分deal 分配宗量deblank 删去串尾部的空格符dec2base 十进制转换为X进制dec2bin 十进制转换为二进制dec2hex 十进制转换为十六进制deconv 多项式除、解卷delaunay Delaunay 三角剖分del2 离散Laplacian差分demo Matlab演示det 行列式diag 矩阵对角元素提取、创建对角阵diary Matlab指令窗文本内容记录diff 数值差分、符号微分digits 符号计算中设置符号数值的精度dir 目录列表disp 显示数组display 显示对象内容的重载函数dlinmod 离散系统的线性化模型dmperm 矩阵Dulmage-Mendelsohn 分解dos 执行DOS 指令并返回结果double 把其他类型对象转换为双精度数值drawnow 更新事件队列强迫Matlab 刷新屏幕dsolve 符号计算解微分方程E eecho M文件被执行指令的显示edit 启动M文件编辑器eig 求特征值和特征向量eigs 求指定的几个特征值end 控制流FOR等结构体的结尾元素下标eps 浮点相对精度error 显示出错信息并中断执行errortrap错误发生后程序是否继续执行的控制erf 误差函数erfc 误差补函数erfcx 刻度误差补函数erfinv 逆误差函数errorbar 带误差限的曲线图etreeplot画消去树eval 串演算指令evalin 跨空间串演算指令exist 检查变量或函数是否已定义exit 退出Matlab环境exp 指数函数expand 符号计算中的展开操作expint 指数积分函数expm 常用矩阵指数函数expm1 Pade法求矩阵指数expm2 Taylor法求矩阵指数expm3 特征值分解法求矩阵指数eye 单位阵ezcontour 画等位线的简捷指令ezcontourf 画填色等位线的简捷指令ezgraph3 画表面图的通用简捷指令ezmesh 画网线图的简捷指令ezmeshc 画带等位线的网线图的简捷指令ezplot 画二维曲线的简捷指令ezplot3 画三维曲线的简捷指令ezpolar 画极坐标图的简捷指令ezsurf 画表面图的简捷指令ezsurfc 画带等位线的表面图的简捷指令F ffactor 符号计算的因式分解feather 羽毛图feedback 反馈连接feval 执行由串指定的函数fft 离散Fourier变换fft2 二维离散Fourier变换fftn 高维离散Fourier变换fftshift 直流分量对中的谱fieldnames 构架域名figure 创建图形窗fill3 三维多边形填色图find 寻找非零元素下标findobj 寻找具有指定属性的对象图柄findstr 寻找短串的起始字符下标findsym 机器确定内存中的符号变量finverse 符号计算中求反函数fix 向零取整flag 红白蓝黑交错色图阵fliplr 矩阵的左右翻转flipud 矩阵的上下翻转flipdim 矩阵沿指定维翻转floor 向负无穷取整flops 浮点运算次数flow Matlab提供的演示数据fmin 求单变量非线性函数极小值点(旧版)fminbnd 求单变量非线性函数极小值点fmins 单纯形法求多变量函数极小值点(旧版)fminunc 拟牛顿法求多变量函数极小值点fminsearch 单纯形法求多变量函数极小值点fnder 对样条函数求导fnint 利用样条函数求积分fnval 计算样条函数区间内任意一点的值fnplt 绘制样条函数图形fopen 打开外部文件for 构成for环用format 设置输出格式fourier Fourier 变换fplot 返函绘图指令fprintf 设置显示格式fread 从文件读二进制数据fsolve 求多元函数的零点full 把稀疏矩阵转换为非稀疏阵funm 计算一般矩阵函数funtool 函数计算器图形用户界面fzero 求单变量非线性函数的零点G ggamma 函数gammainc 不完全函数gammaln 函数的对数gca 获得当前轴句柄gcbo 获得正执行“回调”的对象句柄gcf 获得当前图对象句柄gco 获得当前对象句柄geomean 几何平均值get 获知对象属性getfield 获知构架数组的域getframe 获取影片的帧画面ginput 从图形窗获取数据global 定义全局变量gplot 依图论法则画图gradient 近似梯度gray 黑白灰度grid 画分格线griddata 规则化数据和曲面拟合gtext 由鼠标放置注释文字guide 启动图形用户界面交互设计工具H hharmmean 调和平均值help 在线帮助helpwin 交互式在线帮助helpdesk 打开超文本形式用户指南hex2dec 十六进制转换为十进制hex2num 十六进制转换为浮点数hidden 透视和消隐开关hilb Hilbert矩阵hist 频数计算或频数直方图histc 端点定位频数直方图histfit 带正态拟合的频数直方图hold 当前图上重画的切换开关horner 分解成嵌套形式hot 黑红黄白色图hsv 饱和色图I iif-else-elseif 条件分支结构ifft 离散Fourier反变换ifft2 二维离散Fourier反变换ifftn 高维离散Fourier反变换ifftshift 直流分量对中的谱的反操作ifourier Fourier反变换i, j 缺省的“虚单元”变量ilaplace Laplace反变换imag 复数虚部image 显示图象imagesc 显示亮度图象imfinfo 获取图形文件信息imread 从文件读取图象imwrite 把图象写成文件ind2sub 单下标转变为多下标inf 无穷大info MathWorks公司网点地址inline 构造内联函数对象inmem 列出内存中的函数名input 提示用户输入inputname 输入宗量名int 符号积分int2str 把整数数组转换为串数组interp1 一维插值interp2 二维插值interp3 三维插值interpn N维插值interpft 利用FFT插值intro Matlab自带的入门引导inv 求矩阵逆invhilb Hilbert矩阵的准确逆ipermute 广义反转置isa 检测是否给定类的对象ischar 若是字符串则为真isequal 若两数组相同则为真isempty 若是空阵则为真isfinite 若全部元素都有限则为真isfield 若是构架域则为真isglobal 若是全局变量则为真ishandle 若是图形句柄则为真ishold 若当前图形处于保留状态则为真isieee 若计算机执行IEEE规则则为真isinf 若是无穷数据则为真isletter 若是英文字母则为真islogical 若是逻辑数组则为真ismember 检查是否属于指定集isnan 若是非数则为真isnumeric 若是数值数组则为真isobject 若是对象则为真isprime 若是质数则为真isreal 若是实数则为真isspace 若是空格则为真issparse 若是稀疏矩阵则为真isstruct 若是构架则为真isstudent 若是Matlab学生版则为真iztrans 符号计算Z反变换J j , K kjacobian 符号计算中求Jacobian 矩阵jet 蓝头红尾饱和色jordan 符号计算中获得Jordan标准型keyboard 键盘获得控制权kron Kronecker乘法规则产生的数组L llaplace Laplace变换lasterr 显示最新出错信息lastwarn 显示最新警告信息leastsq 解非线性最小二乘问题(旧版)legend 图形图例lighting 照明模式line 创建线对象lines 采用plot 画线色linmod 获连续系统的线性化模型linmod2 获连续系统的线性化精良模型linspace 线性等分向量ln 矩阵自然对数load 从MAT文件读取变量log 自然对数log10 常用对数log2 底为2的对数loglog 双对数刻度图形logm 矩阵对数logspace对数分度向量lookfor 按关键字搜索M文件lower 转换为小写字母lsqnonlin 解非线性最小二乘问题lu LU分解M mmad 平均绝对值偏差magic 魔方阵maple 运作Maple格式指令mat2str 把数值数组转换成输入形态串数组material 材料反射模式max 找向量中最大元素mbuild 产生EXE文件编译环境的预设置指令mcc 创建MEX或EXE文件的编译指令mean 求向量元素的平均值median 求中位数menuedit 启动设计用户菜单的交互式编辑工具mesh 网线图meshz 垂帘网线图meshgrid 产生“格点”矩阵methods 获知对指定类定义的所有方法函数mex 产生MEX文件编译环境的预设置指令mfunlis 能被mfun计算的MAPLE经典函数列表mhelp 引出Maple的在线帮助min 找向量中最小元素mkdir 创建目录mkpp 逐段多项式数据的明晰化mod 模运算more 指令窗中内容的分页显示movie 放映影片动画moviein 影片帧画面的内存预置mtaylor 符号计算多变量Taylor级数展开N nndims 求数组维数NaN 非数(预定义)变量nargchk 输入宗量数验证nargin 函数输入宗量数nargout 函数输出宗量数ndgrid 产生高维格点矩阵newplot 准备新的缺省图、轴nextpow2 取最接近的较大2次幂nnz 矩阵的非零元素总数nonzeros 矩阵的非零元素norm 矩阵或向量范数normcdf 正态分布累计概率密度函数normest 估计矩阵2范数norminv 正态分布逆累计概率密度函数normpdf 正态分布概率密度函数normrnd 正态随机数发生器notebook 启动Matlab和Word的集成环境null 零空间num2str 把非整数数组转换为串numden 获取最小公分母和相应的分子表达式nzmax 指定存放非零元素所需内存O oode1 非Stiff 微分方程变步长解算器ode15s Stiff 微分方程变步长解算器ode23t 适度Stiff 微分方程解算器ode23tb Stiff 微分方程解算器ode45 非Stiff 微分方程变步长解算器odefile ODE 文件模板odeget 获知ODE 选项设置参数odephas2 ODE 输出函数的二维相平面图odephas3 ODE 输出函数的三维相空间图odeplot ODE 输出函数的时间轨迹图odeprint 在Matlab指令窗显示结果odeset 创建或改写ODE选项构架参数值ones 全1数组optimset 创建或改写优化泛函指令的选项参数值orient 设定图形的排放方式orth 值空间正交化P ppack 收集Matlab内存碎块扩大内存pagedlg 调出图形排版对话框patch 创建块对象path 设置Matlab搜索路径的指令pathtool 搜索路径管理器pause 暂停pcode 创建预解译P码文件pcolor 伪彩图peaks Matlab提供的典型三维曲面permute 广义转置pi (预定义变量)圆周率pie 二维饼图pie3 三维饼图pink 粉红色图矩阵pinv 伪逆plot 平面线图plot3 三维线图plotmatrix 矩阵的散点图plotyy 双纵坐标图poissinv 泊松分布逆累计概率分布函数poissrnd 泊松分布随机数发生器pol2cart 极或柱坐标变为直角坐标polar 极坐标图poly 矩阵的特征多项式、根集对应的多项式poly2str 以习惯方式显示多项式poly2sym 双精度多项式系数转变为向量符号多项式polyder 多项式导数polyfit 数据的多项式拟合polyval 计算多项式的值polyvalm 计算矩阵多项式pow2 2的幂ppval 计算分段多项式pretty 以习惯方式显示符号表达式print 打印图形或SIMULINK模型printsys 以习惯方式显示有理分式prism 光谱色图矩阵procread 向MAPLE输送计算程序profile 函数文件性能评估器propedit 图形对象属性编辑器pwd 显示当前工作目录Q qquad 低阶法计算数值积分quad8 高阶法计算数值积分quit 推出Matlab 环境quiver 二维方向箭头图quiver3 三维方向箭头图R rrand 产生均匀分布随机数randn 产生正态分布随机数randperm 随机置换向量range 样本极差rank 矩阵的秩rats 有理输出rcond 矩阵倒条件数估计real 复数的实部reallog 在实数域内计算自然对数realpow 在实数域内计算乘方realsqrt 在实数域内计算平方根realmax 最大正浮点数realmin 最小正浮点数rectangle 画“长方框”rem 求余数repmat 铺放模块数组reshape 改变数组维数、大小residue 部分分式展开return 返回ribbon 把二维曲线画成三维彩带图rmfield 删去构架的域roots 求多项式的根rose 数扇形图rot90 矩阵旋转90度rotate 指定的原点和方向旋转rotate3d 启动三维图形视角的交互设置功能round 向最近整数圆整rref 简化矩阵为梯形形式rsf2csf 实数块对角阵转为复数特征值对角阵rsums Riemann和S ssave 把内存变量保存为文件scatter 散点图scatter3 三维散点图sec 正割sech 双曲正割semilogx X轴对数刻度坐标图semilogy Y轴对数刻度坐标图series 串联连接set 设置图形对象属性setfield 设置构架数组的域setstr 将ASCII码转换为字符的旧版指令sign 根据符号取值函数signum 符号计算中的符号取值函数sim 运行SIMULINK模型simget 获取SIMULINK模型设置的仿真参数simple 寻找最短形式的符号解simplify 符号计算中进行简化操作simset 对SIMULINK模型的仿真参数进行设置simulink 启动SIMULINK模块库浏览器sin 正弦sinh 双曲正弦size 矩阵的大小slice 立体切片图solve 求代数方程的符号解spalloc 为非零元素配置内存sparse 创建稀疏矩阵spconvert 把外部数据转换为稀疏矩阵spdiags 稀疏对角阵spfun 求非零元素的函数值sph2cart 球坐标变为直角坐标sphere 产生球面spinmap 色图彩色的周期变化spline 样条插值spones 用1置换非零元素sprandsym 稀疏随机对称阵sprank 结构秩spring 紫黄调春色图sprintf 把格式数据写成串spy 画稀疏结构图sqrt 平方根sqrtm 方根矩阵squeeze 删去大小为1的“孤维”sscanf 按指定格式读串stairs 阶梯图std 标准差stem 二维杆图step 阶跃响应指令str2double 串转换为双精度值str2mat 创建多行串数组str2num 串转换为数strcat 接成长串strcmp 串比较strjust 串对齐strmatch 搜索指定串strncmp 串中前若干字符比较strrep 串替换strtok 寻找第一间隔符前的内容struct 创建构架数组struct2cell 把构架转换为元胞数组strvcat 创建多行串数组sub2ind 多下标转换为单下标subexpr 通过子表达式重写符号对象subplot 创建子图subs 符号计算中的符号变量置换subspace 两子空间夹角sum 元素和summer 绿黄调夏色图superiorto 设定优先级surf 三维着色表面图surface 创建面对象surfc 带等位线的表面图surfl 带光照的三维表面图surfnorm 空间表面的法线svd 奇异值分解svds 求指定的若干奇异值switch-case-otherwise 多分支结构sym2poly 符号多项式转变为双精度多项式系数向量symmmd 对称最小度排序symrcm 反向Cuthill-McKee排序syms 创建多个符号对象T ttan 正切tanh 双曲正切taylortool 进行Taylor逼近分析的交互界面text 文字注释tf 创建传递函数对象tic 启动计时器title 图名toc 关闭计时器trapz 梯形法数值积分treelayout 展开树、林treeplot 画树图tril 下三角阵trim 求系统平衡点trimesh 不规则格点网线图trisurf 不规则格点表面图triu 上三角阵try-catch 控制流中的Try-catch结构type 显示M文件U uuicontextmenu创建现场菜单uicontrol 创建用户控件uimenu 创建用户菜单unmkpp 逐段多项式数据的反明晰化unwrap 自然态相角upper 转换为大写字母V vvar 方差varargin 变长度输入宗量varargout 变长度输出宗量vectorize 使串表达式或内联函数适于数组运算ver 版本信息的获取view 三维图形的视角控制voronoi V oronoi多边形vpa 任意精度(符号类)数值W wwarning 显示警告信息what 列出当前目录上的文件whatsnew 显示Matlab中Readme文件的内容which 确定函数、文件的位置while 控制流中的While环结构white 全白色图矩阵whitebg 指定轴的背景色who 列出内存中的变量名whos 列出内存中变量的详细信息winter 蓝绿调冬色图workspace 启动内存浏览器X x , Y y , Z zxlabel X轴名xor 或非逻辑yesinput 智能输入指令ylabel Y轴名zeros 全零数组zlabel Z轴名zoom 图形的变焦放大和缩小ztrans 符号计算Z变换。
MATLAB简单程序大全求特征值特征向量A=[2 3 4;1 5 9;8 5 2]det(A)A'rank(A)inv(A)rref(A)eig(A)%求特征值和特征向量卫星运行问题h=200,H=51000,R=6378;a=(h+H+2*R)/2;c=(H-h)/2;b=(a^2-c^2)^(1/2);e=c/a;f=sqrt(1-exp(2).*cos(t)^2);l=int(f,t,0,pi/2)L=4*a.*l动态玫瑰线n=3;N=10000;theta=2*pi*(0:N)/N;r=cos(n*theta);x=r.*cos(theta);y=r.*sin(theta);comet(x,y)二重积分syms x yf=x^2*sin(y);int(int(f,x,0,1),y,0,pi)ezmesh(f,[0,1,0,pi])函数画图syms x;f=exp(-0.2*x)*sin(0.5*x);ezplot(f,[0,8*pi])玫瑰线theta=0:0.01:2*pi;r=cos(3*theta);polar(theta,r,'r')求x^2+y^2=1和x^2+z^2=1所围成的体积syms x y z Rr=1;Z=sqrt(1-x^2);y0=Z;V=8*int(int(Z,y,0,y0),x,0,1)求导数及图像f='1/(5+4*cos(x))';subplot(1,2,1);ezplot(f)f1=diff(f)subplot(1,2,2);ezplot(f1)绕x轴旋转t=(0:20)*pi/10;r=exp(-.2*t).*sin(.5*t);theta=t;x=t'*ones(size(t));y=r'*cos(theta);z=r'*sin(theta);mesh(x,y,z)colormap([0 0 0])某年是否闰年year=input('input year:=');n1=year/4;n2=year/100;n3=year/400;if n1==fix(n1)&n2~=fix(n2)disp('是闰年')elseif n1==fix(n1)&n3==fix(n3) disp('是闰年')elsedisp('不是闰年')End玫瑰线的绘制theta=0:0.001:2*pi;rho=2*cos(3*theta);figure(1);polar(theta,rho)x=rho.*cos(theta);y=rho.*sin(theta);figure(2);comet(x,y)相遇问题function k=moto(A,B)if nargin==0,A=0;B=100;end va=10;vb=8;vc=60;f=1;k=0;while(B-A)>0.2if f==1tk=(B-A)/(vb+vc);elsetk=(B-A)/(vc+va);endA=A+va*tk;B=B-vb*tk;f=-f;k=k+1;End数学实验syms x; x=1:100;f(x)=exp(-0.2*x).*sin(0.5*x); syms x; x=1:100;f(x)=exp(-0.2*x).*sin(0.5*x); plot(x,f(x))syms x; x=0:0.1:2*pi;f(x)=exp(-0.2*x)*sin(0.5*x);plot(x,f(x))syms x; x=0:0.1:2*pi;f(x)=exp(-0.2*x).*sin(0.5*x);plot(x,f(x))syms x; x=0:0.1:2*pi;f(x)=exp(-0.2*x).*sin(0.5*x); zplot(x,f(x))clcf=sym('sin(x)/x');limit(f)f1=sym('(1+a/x)^x')limit(f1)f1=sym('(1+a/x)^x'),x=inf;limit(f1)clcf1=sym('(1+1/x)^x');limit(f1,'inf')f1=sym('(1+1/x)^x');limit(f1,'inf')clcf1=sym('(1+1/x)^x');limit(f1,'x',inf)Clc相遇问题A=0;B=100;va=10;vb=8;vc=60;f=1;k=0;plot(A,0,'ro',B,0,'go'),hold on while(B-A)>0.2if f==1tk=(B-A)/(vb+vc);elsetk=(B-A)/(vc+va);endA=A+va*tk;B=B-vb*tk;plot(A,0,'R.',B,0,'g.'),pause(1)f=-f;k=k+1;endk,tk,A,B数学实验f=[0 9 13.5;0.1 0 0;0 0.2 0]x=[100;100;100]y=xfor n=1:3x=f*xy=[y,x]endyfigure(1),bar(y(1,:))figure(2),bar(y(2,:))figure(3),bar(y(3,:))[p,d]=eig(f)a=p(:,1)b=a/sum(a)x1=b*300y1=x1for n=1:3x1=f*x1y1=[y1,x1]endy1figure(4),bar(y1(1,:))figure(5),bar(y1(2,:))figure(6),bar(y1(3,:))杨辉三角function Y=yang(n)if nargin==0,n=3;endY=eye(n);Y(:,1)=ones(n,1);for k=3:nY(k,2:k-1)=Y(k-1,1:k-2)+Y(k-1,2:k-1);End实例2 寻找水仙花数一、实验内容数153有一个特殊的性质,即153=1^3+5^3+3^3,那么有没有其他这样的数呢?我们怎样利用MATLAB程序设计快速寻求这些水仙花数呢?二、实验分析把任一数各位数字的立方和求出,再求所得的各位数字的立方和,依次进行下去,总可以得到一个水仙花数.如把76按这样的运算进行下去:333333333333+=++=++=+++= 76559,559979,9791801,1801514, 333333333333++=++=++=++= 514190,190730,730370,370370结果得到一个水仙花数370。
程序代码:(代码标记[code]...[/code] ) 1-32是:图形应用篇33-66是:界面设计篇67-84是:图形处理篇85-100是:数值分析篇实例1:三角函数曲线(1)function shili01h0=figure('toolbar','none',...'position',[198****0300],...'name','实例01');h1=axes('parent',h0,...'visible','off');x=-pi:0.05:pi;y=sin(x);plot(x,y);xlabel('自变量X');ylabel('函数值Y');title('SIN( )函数曲线');grid on实例2:三角函数曲线(2)function shili02h0=figure('toolbar','none',...'position',[200 150 450 350],...'name','实例02');x=-pi:0.05:pi;y=sin(x)+cos(x);plot(x,y,'-*r','linewidth',1);grid onxlabel('自变量X');ylabel('函数值Y');title('三角函数');实例3:图形的叠加function shili03h0=figure('toolbar','none',...'position',[200 150 450 350],...'name','实例03');x=-pi:0.05:pi;y1=sin(x);y2=cos(x);plot(x,y1,...'-*r',...x,y2,...'--og');grid onxlabel('自变量X');ylabel('函数值Y');title('三角函数');实例4:双y轴图形的绘制function shili04h0=figure('toolbar','none',...'position',[200 150 450 250],...'name','实例04');x=0:900;a=1000;b=0.005;y1=2*x;y2=cos(b*x);[haxes,hline1,hline2]=plotyy(x,y1,x,y2,'semilogy','plot'); axes(haxes(1))ylabel('semilog plot');axes(haxes(2))ylabel('linear plot');实例5:单个轴窗口显示多个图形function shili05h0=figure('toolbar','none',...'position',[200 150 450 250],...'name','实例05');t=0:pi/10:2*pi;[x,y]=meshgrid(t);subplot(2,2,1)plot(sin(t),cos(t))axis equalsubplot(2,2,2)z=sin(x)-cos(y);plot(t,z)axis([0 2*pi -2 2])subplot(2,2,3)h=sin(x)+cos(y);plot(t,h)axis([0 2*pi -2 2])subplot(2,2,4)g=(sin(x).^2)-(cos(y).^2);plot(t,g)axis([0 2*pi -1 1])实例6:图形标注function shili06h0=figure('toolbar','none',...'position',[200 150 450 400],...'name','实例06');t=0:pi/10:2*pi;h=plot(t,sin(t));xlabel('t=0到2\pi','fontsize',16);ylabel('sin(t)','fontsize',16);title('\it{从0to2\pi 的正弦曲线}','fontsize',16) x=get(h,'xdata');y=get(h,'ydata');imin=find(min(y)==y);imax=find(max(y)==y);text(x(imin),y(imin),...['\leftarrow最小值=',num2str(y(imin))],... 'fontsize',16)text(x(imax),y(imax),...['\leftarrow最大值=',num2str(y(imax))],...'fontsize',16)实例7:条形图形function shili07h0=figure('toolbar','none',...'position',[200 150 450 350],...'name','实例07');tiao1=[562 548 224 545 41 445 745 512];tiao2=[47 48 57 58 54 52 65 48];t=0:7;bar(t,tiao1)xlabel('X轴');ylabel('TIAO1值');h1=gca;h2=axes('position',get(h1,'position'));plot(t,tiao2,'linewidth',3)set(h2,'yaxislocation','right','color','none','xticklabel',[])实例8:区域图形function shili08h0=figure('toolbar','none',...'position',[200 150 450 250],...'name','实例08');x=91:95;profits1=[88 75 84 93 77];profits2=[51 64 54 56 68];profits3=[42 54 34 25 24];profits4=[26 38 18 15 4];area(x,profits1,'facecolor',[0.5 0.9 0.6],...'edgecolor','b',...'linewidth',3)hold onarea(x,profits2,'facecolor',[0.9 0.85 0.7],...'edgecolor','y',...'linewidth',3)hold onarea(x,profits3,'facecolor',[0.3 0.6 0.7],... 'edgecolor','r',...'linewidth',3)hold onarea(x,profits4,'facecolor',[0.6 0.5 0.9],... 'edgecolor','m',...'linewidth',3)hold offset(gca,'xtick',[91:95])set(gca,'layer','top')gtext('\leftarrow第一季度销量')gtext('\leftarrow第二季度销量')gtext('\leftarrow第三季度销量')gtext('\leftarrow第四季度销量')xlabel('年','fontsize',16);ylabel('销售量','fontsize',16);实例9:饼图的绘制function shili09h0=figure('toolbar','none',...'position',[200 150 450 250],...'name','实例09');t=[54 21 35;68 54 35;45 25 12;48 68 45;68 54 69];x=sum(t);h=pie(x);textobjs=findobj(h,'type','text');str1=get(textobjs,{'string'});val1=get(textobjs,{'extent'});oldext=cat(1,val1{:});names={'商品一:';'商品二:';'商品三:'}; str2=strcat(names,str1);set(textobjs,{'string'},str2)val2=get(textobjs,{'extent'});newext=cat(1,val2{:});offset=sign(oldext(:,1)).*(newext(:,3)-oldext(:,3))/2; pos=get(textobjs,{'position'});textpos=cat(1,pos{:});textpos(:,1)=textpos(:,1)+offset;set(textobjs,{'position'},num2cell(textpos,[3,2]))实例10:阶梯图function shili10h0=figure('toolbar','none',...'position',[200 150 450 400],...'name','实例10');a=0.01;b=0.5;t=0:10;f=exp(-a*t).*sin(b*t);stairs(t,f)hold onplot(t,f,':*')hold offglabel='函数e^{-(\alpha*t)}sin\beta*t的阶梯图'; gtext(glabel,'fontsize',16)xlabel('t=0:10','fontsize',16)axis([0 10 -1.2 1.2])实例11:枝干图function shili11h0=figure('toolbar','none',...'position',[200 150 450 350],...'name','实例11');x=0:pi/20:2*pi;y1=sin(x);y2=cos(x);h1=stem(x,y1+y2);hold onh2=plot(x,y1,'^r',x,y2,'*g');h3=[h1(1);h2];legend(h3,'y1+y2','y1=sin(x)','y2=cos(x)') xlabel('自变量X');ylabel('函数值Y');title('正弦函数与余弦函数的线性组合');实例12:罗盘图function shili12h0=figure('toolbar','none',...'position',[200 150 450 250],...'name','实例12');winddirection=[54 24 65 84256 12 235 62125 324 34 254];windpower=[2 5 5 36 8 12 76 14 10 8];rdirection=winddirection*pi/180;[x,y]=pol2cart(rdirection,windpower); compass(x,y);desc={'风向和风力','北京气象台','10月1日0:00到','10月1日12:00'};gtext(desc)实例13:轮廓图function shili13h0=figure('toolbar','none',...'position',[200 150 450 250],...'name','实例13');[th,r]=meshgrid((0:10:360)*pi/180,0:0.05:1); [x,y]=pol2cart(th,r);z=x+i*y;f=(z.^4-1).^(0.25);contour(x,y,abs(f),20)xlabel('实部','fontsize',16);ylabel('虚部','fontsize',16);h=polar([0 2*pi],[0 1]);delete(h)hold oncontour(x,y,abs(f),20)实例14:交互式图形function shili14h0=figure('toolbar','none',...'position',[200 150 450 250],... 'name','实例14');axis([0 10 0 10]);hold onx=[];y=[];n=0;disp('单击鼠标左键点取需要的点'); disp('单击鼠标右键点取最后一个点'); but=1;while but==1[xi,yi,but]=ginput(1);plot(xi,yi,'bo')n=n+1;disp('单击鼠标左键点取下一个点'); x(n,1)=xi;y(n,1)=yi;endt=1:n;ts=1:0.1:n;xs=spline(t,x,ts);ys=spline(t,y,ts);plot(xs,ys,'r-');hold off实例15:变换的傅立叶函数曲线function shili15h0=figure('toolbar','none',...'position',[200 150 450 250],...'name','实例15');axis equalm=moviein(20,gcf);set(gca,'nextplot','replacechildren')h=uicontrol('style','slider','position',... [100 10 500 20],'min',1,'max',20) for j=1:20plot(fft(eye(j+16)))set(h,'value',j)m(:,j)=getframe(gcf);endclf;axes('position',[0 0 1 1]);movie(m,30)实例16:劳伦兹非线形方程的无序活动function shili15h0=figure('toolbar','none',...'position',[200 150 450 250],...'name','实例15');axis equalm=moviein(20,gcf);set(gca,'nextplot','replacechildren')h=uicontrol('style','slider','position',... [100 10 500 20],'min',1,'max',20) for j=1:20plot(fft(eye(j+16)))set(h,'value',j)m(:,j)=getframe(gcf);endclf;axes('position',[0 0 1 1]);movie(m,30)实例17:填充图function shili17h0=figure('toolbar','none',...'position',[200 150 450 250],... 'name','实例17');t=(1:2:15)*pi/8;x=sin(t);y=cos(t);fill(x,y,'r')axis square offtext(0,0,'STOP',...'color',[1 1 1],...'fontsize',50,...'horizontalalignment','center')实例18:条形图和阶梯形图function shili18h0=figure('toolbar','none',...'position',[200 150 450 250],... 'name','实例18');subplot(2,2,1)x=-3:0.2:3;y=exp(-x.*x);bar(x,y)title('2-D Bar Chart')subplot(2,2,2)x=-3:0.2:3;y=exp(-x.*x);bar3(x,y,'r')title('3-D Bar Chart')subplot(2,2,3)x=-3:0.2:3;y=exp(-x.*x);stairs(x,y)title('Stair Chart')subplot(2,2,4)x=-3:0.2:3;y=exp(-x.*x);barh(x,y)title('Horizontal Bar Chart')实例19:三维曲线图function shili19h0=figure('toolbar','none',...'position',[200 150 450 400],... 'name','实例19');subplot(2,1,1)x=linspace(0,2*pi);y1=sin(x);y2=cos(x);y3=sin(x)+cos(x);z1=zeros(size(x));z2=0.5*z1;z3=z1;plot3(x,y1,z1,x,y2,z2,x,y3,z3) grid onxlabel('X轴');ylabel('Y轴');zlabel('Z轴');title('Figure1:3-D Plot')subplot(2,1,2)x=linspace(0,2*pi);y1=sin(x);y2=cos(x);y3=sin(x)+cos(x);z1=zeros(size(x));z2=0.5*z1;z3=z1;plot3(x,z1,y1,x,z2,y2,x,z3,y3) grid onxlabel('X轴');zlabel('Z轴');title('Figure2:3-D Plot')实例20:图形的隐藏属性function shili20h0=figure('toolbar','none',...'position',[200 150 450 300],... 'name','实例20');subplot(1,2,1)[x,y,z]=sphere(10);mesh(x,y,z)axis offtitle('Figure1:Opaque')hidden onsubplot(1,2,2)[x,y,z]=sphere(10);mesh(x,y,z)axis offtitle('Figure2:Transparent') hidden off实例21:PEAKS函数曲线function shili21h0=figure('toolbar','none',...'position',[200 100 450 450],... 'name','实例21');[x,y,z]=peaks(30);subplot(2,1,1)x=x(1,:);y=y(:,1);i=find(y>0.8&y<1.2);j=find(x>-0.6&x<0.5);z(i,j)=nan*z(i,j);surfc(x,y,z)xlabel('X轴');ylabel('Y轴');title('Figure1:surfc函数形成的曲面')subplot(2,1,2)x=x(1,:);y=y(:,1);i=find(y>0.8&y<1.2);j=find(x>-0.6&x<0.5);z(i,j)=nan*z(i,j);surfl(x,y,z)xlabel('X轴');ylabel('Y轴');zlabel('Z轴');title('Figure2:surfl函数形成的曲面')实例22:片状图function shili22h0=figure('toolbar','none',...'position',[200 150 550 350],...'name','实例22');subplot(1,2,1)x=rand(1,20);y=rand(1,20);z=peaks(x,y*pi);t=delaunay(x,y);trimesh(t,x,y,z)hidden offtitle('Figure1:Triangular Surface Plot');subplot(1,2,2)x=rand(1,20);y=rand(1,20);z=peaks(x,y*pi);t=delaunay(x,y);trisurf(t,x,y,z)title('Figure1:Triangular Surface Plot');实例23:视角的调整function shili23h0=figure('toolbar','none',...'position',[200 150 450 350],... 'name','实例23');x=-5:0.5:5;[x,y]=meshgrid(x);r=sqrt(x.^2+y.^2)+eps;z=sin(r)./r;subplot(2,2,1)surf(x,y,z)xlabel('X-axis')ylabel('Y-axis')zlabel('Z-axis')title('Figure1')view(-37.5,30)subplot(2,2,2)surf(x,y,z)xlabel('X-axis')ylabel('Y-axis')zlabel('Z-axis')title('Figure2')view(-37.5+90,30)subplot(2,2,3)surf(x,y,z)xlabel('X-axis')ylabel('Y-axis')zlabel('Z-axis')title('Figure3')view(-37.5,60)subplot(2,2,4)surf(x,y,z)xlabel('X-axis')ylabel('Y-axis')zlabel('Z-axis')title('Figure4')view(180,0)实例24:向量场的绘制function shili24h0=figure('toolbar','none',...'position',[200 150 450 350],... 'name','实例24');subplot(2,2,1)z=peaks;ribbon(z)title('Figure1')subplot(2,2,2)[x,y,z]=peaks(15);[dx,dy]=gradient(z,0.5,0.5); contour(x,y,z,10)hold onquiver(x,y,dx,dy)hold offtitle('Figure2')subplot(2,2,3)[x,y,z]=peaks(15);[nx,ny,nz]=surfnorm(x,y,z);surf(x,y,z)hold onquiver3(x,y,z,nx,ny,nz)hold offtitle('Figure3')subplot(2,2,4)x=rand(3,5);y=rand(3,5);z=rand(3,5);c=rand(3,5);fill3(x,y,z,c)grid ontitle('Figure4')实例25:灯光定位function shili25h0=figure('toolbar','none',...'position',[200 150 450 250],... 'name','实例25');vert=[1 1 1;1 2 1;2 2 1;2 1 1;1 1 2;12 2;2 2 2;2 1 2];fac=[1 2 3 4;2 6 7 3;4 3 7 8;15 8 4;1 2 6 5;5 6 7 8];grid offsphere(36)h=findobj('type','surface');set(h,'facelighting','phong',...'facecolor',...'interp',...'edgecolor',[0.4 0.4 0.4],...'backfacelighting',...'lit')hold onpatch('faces',fac,'vertices',vert,... 'facecolor','y');light('position',[1 3 2]);light('position',[-3 -1 3]); material shinyaxis vis3d offhold off实例26:柱状图function shili26h0=figure('toolbar','none',...'position',[200 50 450 450],...'name','实例26');subplot(2,1,1)x=[5 2 18 7 39 8 65 5 54 3 2];bar(x)xlabel('X轴');ylabel('Y轴');title('第一子图');subplot(2,1,2)y=[5 2 18 7 39 8 65 5 54 3 2];barh(y)xlabel('X轴');ylabel('Y轴');title('第二子图');实例27:设置照明方式function shili27h0=figure('toolbar','none',...'position',[200 150 450 350],... 'name','实例27');subplot(2,2,1)sphereshading flatcamlight leftcamlight rightlighting flatcolorbaraxis offtitle('Figure1')subplot(2,2,2)sphereshading flatcamlight leftcamlight rightlighting gouraudcolorbaraxis offtitle('Figure2')subplot(2,2,3)sphereshading interpcamlight rightcamlight leftlighting phongcolorbaraxis offtitle('Figure3')subplot(2,2,4)sphereshading flatcamlight leftcamlight rightlighting nonecolorbaraxis offtitle('Figure4')实例28:羽状图function shili28h0=figure('toolbar','none',...'position',[200 150 450 350],... 'name','实例28');subplot(2,1,1)alpha=90:-10:0;r=ones(size(alpha));m=alpha*pi/180;n=r*10;[u,v]=pol2cart(m,n);feather(u,v)title('羽状图')axis([0 20 0 10])subplot(2,1,2)t=0:0.5:10;x=0.05+i;y=exp(-x*t);feather(y)title('复数矩阵的羽状图')实例29:立体透视(1)function shili29h0=figure('toolbar','none',...'position',[200 150 450 250],... 'name','实例29');[x,y,z]=meshgrid(-2:0.1:2,...-2:0.1:2,...-2:0.1:2);v=x.*exp(-x.^2-y.^2-z.^2); grid onfor i=-2:0.5:2;h1=surf(linspace(-2,2,20),...linspace(-2,2,20),...zeros(20)+i);rotate(h1,[1 -1 1],30)dx=get(h1,'xdata');dy=get(h1,'ydata');dz=get(h1,'zdata');delete(h1)slice(x,y,z,v,[-2 2],2,-2)hold onslice(x,y,z,v,dx,dy,dz)hold offaxis tightview(-5,10)drawnowend实例30:立体透视(2)function shili30h0=figure('toolbar','none',...'position',[200 150 450 250],... 'name','实例30');[x,y,z]=meshgrid(-2:0.1:2,...-2:0.1:2,...-2:0.1:2);v=x.*exp(-x.^2-y.^2-z.^2); [dx,dy,dz]=cylinder;slice(x,y,z,v,[-2 2],2,-2)for i=-2:0.2:2h=surface(dx+i,dy,dz);rotate(h,[1 0 0],90)xp=get(h,'xdata');yp=get(h,'ydata');zp=get(h,'zdata');delete(h)hold onhs=slice(x,y,z,v,xp,yp,zp);axis tightxlim([-3 3])view(-10,35)drawnowdelete(hs)hold offend实例31:表面图形function shili31h0=figure('toolbar','none',...'position',[200 150 550 250],...'name','实例31');subplot(1,2,1)x=rand(100,1)*16-8;y=rand(100,1)*16-8;r=sqrt(x.^2+y.^2)+eps;z=sin(r)./r;xlin=linspace(min(x),max(x),33); ylin=linspace(min(y),max(y),33); [X,Y]=meshgrid(xlin,ylin);Z=griddata(x,y,z,X,Y,'cubic'); mesh(X,Y,Z)axis tighthold onplot3(x,y,z,'.','Markersize',20)subplot(1,2,2)k=5;n=2^k-1;theta=pi*(-n:2:n)/n;phi=(pi/2)*(-n:2:n)'/n;X=cos(phi)*cos(theta);Y=cos(phi)*sin(theta);Z=sin(phi)*ones(size(theta)); colormap([0 0 0;1 1 1])C=hadamard(2^k);surf(X,Y,Z,C)axis square实例32:沿曲线移动的小球h0=figure('toolbar','none',...'position',[198****8468],... 'name','实例32');h1=axes('parent',h0,...'position',[0.15 0.45 0.7 0.5],... 'visible','on');t=0:pi/24:4*pi;y=sin(t);plot(t,y,'b')n=length(t);h=line('color',[0 0.5 0.5],...'linestyle','.',...'markersize',25,...'erasemode','xor');k1=uicontrol('parent',h0,...'style','pushbutton',...'position',[80 100 50 30],...'string','开始',...'callback',[...'i=1;',...'k=1;,',...'m=0;,',...'while 1,',...'if k==0,',...'break,',...'end,',...'if k~=0,',...'set(h,''xdata'',t(i),''ydata'',y(i)),',...'drawnow;,',...'i=i+1;,',...'if i>n,',...'m=m+1;,',...'i=1;,',...'end,',...'end,',...'end']);k2=uicontrol('parent',h0,...'style','pushbutton',...'position',[180 100 50 30],...'string','停止',...'callback',[...'k=0;,',...'set(e1,''string'',m),',...'p=get(h,''xdata'');,',...'q=get(h,''ydata'');,',...'set(e2,''string'',p);,',...'set(e3,''string'',q)']);k3=uicontrol('parent',h0,...'style','pushbutton',...'position',[280 100 50 30],... 'string','关闭',...'callback','close');e1=uicontrol('parent',h0,...'style','edit',...'position',[60 30 60 20]);t1=uicontrol('parent',h0,...'style','text',...'string','循环次数',...'position',[60 50 60 20]);e2=uicontrol('parent',h0,...'style','edit',...'position',[180 30 50 20]);t2=uicontrol('parent',h0,...'style','text',...'string','终点的X坐标值',...'position',[155 50 100 20]);e3=uicontrol('parent',h0,...'style','edit',...'position',[300 30 50 20]);t3=uicontrol('parent',h0,...'style','text',...'string','终点的Y坐标值',...'position',[275 50 100 20]);实例33:曲线转换按钮h0=figure('toolbar','none',...'position',[200 150 450 250],... 'name','实例33');x=0:0.5:2*pi;y=sin(x);h=plot(x,y);grid on'if i==1,',...'i=0;,',...'y=cos(x);,',...'delete(h),',...'set(hm,''string'',''正弦函数''),',...'h=plot(x,y);,',...'grid on,',...'else if i==0,',...'i=1;,',...'y=sin(x);,',...'set(hm,''string'',''余弦函数''),',...'delete(h),',...'h=plot(x,y);,',...'grid on,',...'end,',...'end'];hm=uicontrol(gcf,'style','pushbutton',... 'string','余弦函数',...'callback',huidiao);i=1;set(hm,'position',[250 20 60 20]);set(gca,'position',[0.2 0.2 0.6 0.6]) title('按钮的使用')hold on实例34:栅格控制按钮h0=figure('toolbar','none',...'position',[200 150 450 250],...'name','实例34');x=0:0.5:2*pi;y=sin(x);plot(x,y)huidiao1=[...'set(h_toggle2,''value'',0),',...'grid on,',...];'set(h_toggle1,''value'',0),',...'grid off,',...];h_toggle1=uicontrol(gcf,'style','togglebutton',... 'string','grid on',...'value',0,...'position',[20 45 50 20],...'callback',huidiao1);h_toggle2=uicontrol(gcf,'style','togglebutton',... 'string','grid off',...'value',0,...'position',[20 20 50 20],...'callback',huidiao2);set(gca,'position',[0.2 0.2 0.6 0.6])title('开关按钮的使用')实例35:编辑框的使用h0=figure('toolbar','none',...'position',[200 150 350 250],...'name','实例35');f='Please input the letter';huidiao1=[...'g=upper(f);,',...'set(h2_edit,''string'',g),',...];huidiao2=[...'g=lower(f);,',...'set(h2_edit,''string'',g),',...];h1_edit=uicontrol(gcf,'style','edit',...'position',[100 200 100 50],...'HorizontalAlignment','left',...'string','Please input the letter',...'callback','f=get(h1_edit,''string'');',...'background','w',...'max',5,...'min',1);h2_edit=uicontrol(gcf,'style','edit',...'HorizontalAlignment','left',...'position',[100 100 100 50],...'background','w',...'max',5,...'min',1);h1_button=uicontrol(gcf,'style','pushbutton',... 'string','小写变大写',...'position',[100 45 100 20],...'callback',huidiao1);h2_button=uicontrol(gcf,'style','pushbutton',... 'string','大写变小写',...'position',[100 20 100 20],...'callback',huidiao2);实例36:弹出式菜单h0=figure('toolbar','none',...'position',[200 150 450 250],...'name','实例36');x=0:0.5:2*pi;y=sin(x);h=plot(x,y);grid onhm=uicontrol(gcf,'style','popupmenu',...'string',...'sin(x)|cos(x)|sin(x)+cos(x)|exp(-sin(x))',... 'position',[250 20 50 20]);set(hm,'value',1)huidiao=[...'v=get(hm,''value'');,',...'switch v,',...'case 1,',...'delete(h),',...'y=sin(x);,',...'h=plot(x,y);,',...'grid on,',...'case 2,',...'delete(h),',...'y=cos(x);,',...'h=plot(x,y);,',...'grid on,',...'case 3,',...'delete(h),',...'y=sin(x)+cos(x);,',...'h=plot(x,y);,',...'grid on,',...'case 4,',...'delete(h),',...'y=exp(-sin(x));,',...'h=plot(x,y);,',...'grid on,',...'end'];set(hm,'callback',huidiao)set(gca,'position',[0.2 0.2 0.6 0.6]) title('弹出式菜单的使用')实例37:滑标的使用h0=figure('toolbar','none',...'position',[200 150 450 250],... 'name','实例37');[x,y]=meshgrid(-8:0.5:8);r=sqrt(x.^2+y.^2)+eps;z=sin(r)./r;h0=mesh(x,y,z);h1=axes('position',...[0.2 0.2 0.5 0.5],...'visible','off');htext=uicontrol(gcf,...'units','points',...'position',[20 30 45 15],...'string','brightness',...'style','text');hslider=uicontrol(gcf,...'units','points',...'position',[10 10 300 15],...'min',-1,...'max',1,...'style','slider',...'callback',...'brighten(get(hslider,''value''))');实例38:多选菜单h0=figure('toolbar','none',...'position',[200 150 450 250],...'name','实例38');[x,y]=meshgrid(-8:0.5:8);r=sqrt(x.^2+y.^2)+eps;z=sin(r)./r;h0=mesh(x,y,z);hlist=uicontrol(gcf,'style','listbox',...'string','default|spring|summer|autumn|winter',... 'max',5,...'min',1,...'position',[20 20 80 100],...'callback',[...'k=get(hlist,''value'');,',...'switch k,',...'case 1,',...'colormap default,',...'case 2,',...'colormap spring,',...'case 3,',...'colormap summer,',...'case 4,',...'colormap autumn,',...'case 5,',...'colormap winter,',...'end']);实例39:菜单控制的使用h0=figure('toolbar','none',...'position',[200 150 450 250],...'name','实例39');x=0:0.5:2*pi;y=cos(x);h=plot(x,y);grid onset(gcf,'toolbar','none')hm=uimenu('label','example');huidiao1=[...'set(hm_gridon,''checked'',''on''),',...'set(hm_gridoff,''checked'',''off''),',...'grid on'];huidiao2=[...'set(hm_gridoff,''checked'',''on''),',...'set(hm_gridon,''checked'',''off''),',...'grid off'];hm_gridon=uimenu(hm,'label','grid on',... 'checked','on',...'callback',huidiao1);hm_gridoff=uimenu(hm,'label','grid off',... 'checked','off',...'callback',huidiao2);实例40:UIMENU菜单的应用h0=figure('toolbar','none',...'position',[200 150 450 250],...'name','实例40');h1=uimenu(gcf,'label','函数');h11=uimenu(h1,'label','轮廓图',...'callback',[...'set(h31,''checked'',''on''),',...'set(h32,''checked'',''off''),',...'[x,y,z]=peaks;,',...'contour3(x,y,z,30)']);h12=uimenu(h1,'label','高斯分布',...。
IIR滤波程序function y=iirfilter(b,a,x)nf=length(a);c=zeros(nf-1,nf-1);for i=nf-1:-1:1for j=1:ic(i,j)=b(i-j+1);d(i,j)=-a(i-j+1);endendd(1,1)=0;y(1)=b(1)*x(1);for i=2:nf-1ss=0;for j=2:iss=ss+x(j)*c(i,j)+y(j-1)*d(i,j-1);endy(i)=ss+x(1)*c(i,1);enda(1)=0;for i=nf:length(x)sum=0;for j=2:nfsum=sum+b(j)*x(i-j+1)-a(j)*y(i-j+1);endy(i)=sum+b(1)*x(i);end读写二进制文件写文件file_out = fopen('tdip.b', 'wb');fwrite(file_out,y,'double');%int8,int16,int24,double,float读文件[FileName,PathName] = uigetfile('*.*','Select the M-file');%选择需要处理的数据文件%% % 打开方式为二进制打开,其实'r'就行,matlab是默认二进制形式打开文件的file_id = fopen(FileName, 'rb');%设置输出文件名字jump_distance = 0; % 这里是跳过的字节数fseek(file_id, jump_distance, 'bof');i=0;week=0;week0=headt(7);while ~feof(file_id)% while(i<3)[data, ele_count] = fread(file_id, [4,fs/10] , 'int32' ) ;End批量处理文件编写程序时经常会遇到处理大量数据文件的情况,数据文件的命名比较相似,以一系列编号区分,如“a1.mat,a2.mat,... ,a100.mat " (假设其中的数据名称也为a1...a100) 。
为了可以批量处理这些文件,可以采用如下的方法:for i=1:1:100s=strcat('a', int2Str(i));load(strcat(s,'.mat'));x=eval(s); %将数据a1赋值给x,便于后继统一处理% ... %统一处理程序end写txt文件fid=fopen(‘1.txt’,’w t’);fprintf(fid,‘这是一个测试文件:\n’)fprintf(fid,’%f’,a)m=[A nskip nfft fxb real(pxb) imag(pxb)];fid = fopen('pxb.txt', 'at');fprintf(fid,'振幅开始时间fft点数激励频率pxb:\n');fprintf(fid,' %d %d %d %6.8f %6.8f %6.8f\n\n', m);% fprintf(fid,'l1 l2 l3 l4:\n')% fprintf(fid, ' %d %d %d %d %d %d %d %d\n ', l');fclose(fid);%a=’00:00:00’;% fprintf(fid,'%s ',a);用cell生成自动变量名并幅值clcclearfor i=1993:1996matName{i-1992}=strcat('Y',num2str(i)); % str=[num2str(i-1992) '.csv'];% matName{i-1992}=xlsread(str); matName{i-1992}=rand(1,i-1992);% eval([matName{i-1992} ' = rand(1,i);']); endmatName{1}(1)关于errorbar误差线:体现数据点置信水平和偏差MATLAB中errorbar的使用example#上下误差相等X = 0:pi/10:pi;Y = sin(X);E = 0:0.05:0.5;figureerrorbar(X,Y,E,'r');hold onplot(X,Y,'-mo',...'LineWidth',2,...'MarkerEdgeColor','k',...'MarkerFaceColor',[.49 1 .63],... 'MarkerSize',12);xlabel('x');ylabel('sin(x)');#上下误差不相等X = 0:pi/10:pi;Y = sin(X);L = 0:0.05:0.5;U=0.5:-0.05:0;figureerrorbar(X,Y,L,U,'r');hold onplot(X,Y,'-mo',...'LineWidth',2,...'MarkerEdgeColor','k',...'MarkerFaceColor',[.49 1 .63],... 'MarkerSize',12);xlabel('x');ylabel('sin(x)');误差棒端点拉长的问题(/blog/?p=45)在Matlab中有个画误差棒的函数errorbar,用在对数坐标下时,则会出现误差棒端点拉长的问题,严重影响画面(如下图左半轴所示)。
这个问题开始是在Matlab6.5中发现的,2006b中虽对此函数有所更新但并未解决这个问题。
幸运的是,这个函数没有嵌入内核,可以在命令窗口键入type errorbar ,直接察看其源代码。
找到定义误差棒端点长度的地方tee = (max(x(:))-min(x(:)))/100;% make tee .02 x-distance for error bars取误差棒端点大小为误差棒长度的2%xl = x – tee; 计算左端点xr = x + tee; 右端点找对地方,改起来就很简单了,在对数坐标中,点A变成了logA,要取到同一点,将A变成10^A 即可,后两行改为xl = x/10^tee;xr = x*10^tee;改名保存到工作目录,直接调用,效果如下图右半轴。
如果在这里加上个判断,就可以直接去目录MATLAB\R2006b\toolbox\matlab\specgraph下替换原始文件了:)时间做坐标轴clearclcx=load('a.txt');n=length(x);for i=1:nwhile(x(i,1)<10^5)x(i,1)=x(i,1)*10;endfor j=2:5while(x(i,j)<10^6)x(i,j)=x(i,j)*10;endendendx=x/10^6;ts=datenum('2013-03-25 19:30:06');% ¿ªÊ¼Ê±¼ätf=datenum('2013-03-26 08:06:06');% ½áÊøÊ±¼ät=linspace(ts,tf,length(x));% 21minΪ×ܹ²µÄʱ¼äcolor=['r','g','m','k'];figure(1)plot(t,x(:,1),'LineWidth',2)axis([ts tf 0 4.5])set(gca,'Xtick',[ts:(tf-ts)/6:tf])datetick('x','yyyy/mm/DD HH:MM:SS','keepticks')title('1-5','Color','k','FontSize',16);ylabel('mV','FontName','Times New Roman','FontSize',20)for i=2:5hold onplot(t,x(:,i),color(i-1),'LineWidth',2)endlegend('SB','SC','SD','C1','C2')plot详细semilogx(p_result(1:f_num-1,3),p_result(1:f_num-1,1),'-bo',...'LineWidth',2.2,...'MarkerEdgeColor','k',...'MarkerFaceColor',[0 0 1],...'MarkerSize',6);% set(gca,'xlim',[1 floor(length(p))/2]);% set(gca,'ylim',[-10 35]);hold onsemilogx(p_result(1:f_num-1,3),p_result(1:f_num-1,2),'-bo',...'LineWidth',2.2,...'MarkerEdgeColor','k',...'MarkerFaceColor',[0 0 1],...'MarkerSize',6);添加当前文件夹及其子文件夹到路径currentFolder = pwd;addpath(genpath(currentFolder))在MATLAB中得到系统当前日期、时间也是经常用到的内容,由以下函数实现。