MATLAB一些函数实例
matlabplot函数详解
matlabplot函数详解plot函数是MATLAB中最重要和最常用的绘图函数之一、它可以绘制多种类型的图形,如折线图、散点图、柱状图等。
在本文中,我们将详细介绍plot函数的用法和参数,以及一些实例演示。
plot函数的一般用法为:plot(x, y, LineSpec),其中x和y分别是要绘制的数据点的横坐标和纵坐标,LineSpec是一个可选参数,用于指定线条的样式和颜色。
1.绘制简单的折线图首先,我们来绘制一个简单的折线图,假设我们有一个数据集x和一个对应的函数y = sin(x)。
我们可以使用以下代码绘制这个折线图:x = linspace(0, 2*pi, 100); % 生成0到2π之间的100个等间距点y = sin(x); % 计算对应的sin值plot(x, y) % 绘制折线图运行以上代码,我们就能得到一个以x为横轴,以y为纵轴的折线图。
2.指定线条样式和颜色我们可以使用LineSpec参数来指定线条的样式和颜色。
LineSpec是一个由3个部分组成的字符串,分别表示线条类型、标记类型和颜色。
例如,我们可以使用红色实线和圆形标记来绘制折线图,代码如下所示:plot(x, y, 'r-o')其中,'r'表示红色,'-'表示实线,'o'表示圆形标记。
运行以上代码,我们可以得到红色实线和圆形标记的折线图。
3.绘制多条曲线plot函数可以同时绘制多条曲线。
我们只需要将不同的数据点传递给x和y,然后用逗号分隔开即可。
例如,我们可以绘制一个由两条正弦曲线构成的图形,代码如下所示:y1 = sin(x);y2 = sin(2*x);plot(x, y1, x, y2)运行以上代码,我们将得到两条正弦曲线组成的图形。
title('折线图示例')xlabel('x')ylabel('y')5.修改坐标轴范围有时候,我们希望修改坐标轴的范围,以更好地展示数据。
MATLAB常用函数的使用(解释加实例)
MATLAB常用函数的使用(解释加实例)1.常用数学函数:- `sqrt(x)`:求一个数的平方根。
例如,`sqrt(9)`的结果是3- `sin(x)`:计算角度x的正弦值。
例如,`sin(pi/2)`的结果是1- `cos(x)`:计算角度x的余弦值。
例如,`cos(pi/2)`的结果是0。
- `exp(x)`:计算e的x次方。
例如,`exp(1)`的结果是2.71832.数组操作函数:- `length(array)`:返回数组的长度。
例如,`length([1, 2, 3])`的结果是3- `sum(array)`:计算数组元素的和。
例如,`sum([1, 2, 3])`的结果是6- `max(array)`:找出数组中的最大值。
例如,`max([1, 2, 3])`的结果是3- `sort(array)`:对数组进行排序。
例如,`sort([3, 2, 1])`的结果是[1, 2, 3]。
3.矩阵操作函数:- `eye(n)`:生成一个n阶单位矩阵。
例如,`eye(3)`的结果是一个3x3的单位矩阵。
- `zeros(m, n)`:生成一个m行n列的全零矩阵。
例如,`zeros(2, 3)`的结果是一个2x3的全零矩阵。
- `ones(m, n)`:生成一个m行n列的全1矩阵。
例如,`ones(2, 3)`的结果是一个2x3的全1矩阵。
- `rand(m, n)`:生成一个m行n列的随机矩阵。
例如,`rand(2,3)`的结果是一个2x3的随机矩阵。
4.文件操作函数:- `load(filename)`:从文件中加载数据。
例如,`load('data.mat')`将从名为"data.mat"的文件中加载数据。
- `save(filename, data)`:将数据保存到文件中。
例如,`save('data.mat', x)`将变量x保存到名为"data.mat"的文件中。
matlab中的一些函数
3. 函数 initial(),dinitial()
对于连续系统由初始状态所引起的 响应,零输入响应,可由函数 initial()来求 得,其调用格式为
[y,x,t]=initial(A,B,C,D,x0) [y,x,t]=initial(A,B,C,D,x0,t) 其中 x0 为初始状态. 同理,对于离散系统的零输入响应函数 调用格式为: [y,x,t]=dinitial(A,B,C,D,x0) [y,x,t]=dinitial(A,B,C,D,x0,n)
clear clc num=[2 -3.4 1.5]; den=[1 -1.6 0.8] step(num,den) grid on
title('连续系统阶跃响应')
xlabel('时间')
ylabel('振幅')
2. c2dm()函数,连续系统的离散化 在 MATLAB 软件中对连续系统的离散
化是应用 c2dm()函数实现的,c2dm()函数的 一般格式为
指定开环增益 k 的变化范围来绘制系统的根轨迹图。
• r=rlocus(num,den,k)
或
者
[r,k]=rlocus(num,den) :不在屏幕上直接绘出系统的根
轨迹图,而根据开环增益变化矢量 k ,返回闭环系统特征
方程 1+k*num(s)/den(s)=0 的根 r,它有 length(k)行,
常用的产生通用特殊矩阵的函数
– zeros:产生全 0 矩阵(零矩阵) – ones:产生全 1 矩阵(幺矩阵) – eye:产生单位矩阵 – rand:产生 0~1 间均匀分布的随机矩阵 – randn:产生均值为 0,方差为 1 的标准正
Matlab中plot函数及legend函数详解及实例
Matlab中plot函数及legend函数详解及实例作者--乘江枫Matlab中plot函数全功能解功能二维曲线绘图语法plot(Y)plot(X1,Y1,...)plot(X1,Y1,LineSpec,...)plot(...,'PropertyName',PropertyValue,...)plot(axes_handle,...)h = plot(...)hlines = plot('v6',...)描述plot(Y)如果Y是m×n的数组,以1:m为X横坐标,Y中的每一列元素为Y坐标,绘制n条曲线;如果Y是n×1或者1×n的向量,则以1:n为横坐标,Y为坐标表绘制1条曲线;如果Y是复数,则plot(Y)等效于plot(real(Y),imag(Y));其它使用情况下,忽略坐标数据中的虚部。
plot(X1,Y1,...)如果X和Y都是数组,按列取坐标数据绘图,此时它们必须具有相同的尺寸;如果X和Y其中一个是向量另一个为数组,X和Y中尺寸相等的方向对应绘制多条曲线;如果X和Y其中一个是标量另一个为向量,那么将绘制垂直X或者Y轴离散的点。
plot(X1,Y1,LineSpec,...)通过参数LineSpec指定曲线的曲线属性,它包括线型、标记符和颜色。
plot函数支持同时绘制任意组图形plot(X1,Y1,LineSpec1,X2,Y2,LineSpec2,...)此时完全等效于plot(X1,Y1,LineSpec1,...)hlod allplot(X2,Y2,LineSpec2,...)MATLAB中提供的线型属性有:需要说明的是,LineSpec中设置曲线线型、标识符和颜色三项属性时,控制符的顺序不受限制并可以省略或者部分省略。
也就是说'r-.*'、'-.r*'、'*-.r'等形式是等效的,都表示使用红色点划线连接各个节点,各节点使用“*”标识。
matlab编程实例100例(精编文档).doc
【最新整理,下载后即可编辑】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');hold offh3=[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)axis equalxlabel('实部','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实例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轴');ylabel('Y轴');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实例21PEAKS函数曲线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轴');zlabel('Z轴');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 phongaxis 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;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 onhuidiao=[...'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,',...];huidiao2=[...'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','高斯分布',...'callback',[...'set(h31,''checked'',''on''),',...'set(h32,''checked'',''off''),',...'mesh(peaks);,',...'axis tight']);。
matlab不同矩阵变量个数的函数例子
在MATLAB中,矩阵是常见的数据类型之一,在进行数据处理、运算以及模型建立时都会大量地涉及到矩阵的操作。
尤其是在函数中,矩阵的变量个数更是多种多样,不同的情况下会有不同的处理方式。
接下来,我将通过一些实际的例子来详细探讨不同矩阵变量个数的函数例子,希望能够帮助你更加深入地理解这个主题。
1. 单个矩阵变量情况下的函数例子让我们来看一个简单的例子。
假设我们需要编写一个函数,用于计算给定矩阵的转置矩阵。
在这种情况下,函数的参数只需要一个矩阵变量即可。
考虑以下的MATLAB函数:```matlabfunction result = transposeMatrix(matrix)result = matrix';end```在这个例子中,函数的参数只有一个矩阵变量matrix,而函数的功能是计算矩阵的转置并返回结果。
这种情况下,我们只需要处理单个矩阵变量即可。
2. 多个矩阵变量情况下的函数例子接下来,我们考虑一个稍微复杂一点的情况。
假设我们需要编写一个函数,用于计算给定两个矩阵的乘积。
在这种情况下,函数的参数需要两个矩阵变量。
考虑以下的MATLAB函数:```matlabfunction result = matrixMultiplication(matrix1, matrix2)result = matrix1 * matrix2;end```在这个例子中,函数的参数有两个矩阵变量matrix1和matrix2,而函数的功能是计算这两个矩阵的乘积并返回结果。
这种情况下,我们需要处理多个矩阵变量,并且要确保它们的维度能够满足矩阵乘法的要求。
3. 可变个数矩阵变量情况下的函数例子除了固定个数的矩阵变量外,有时候我们也会遇到需要处理可变个数矩阵变量的情况。
我们需要编写一个函数,用于计算给定任意个矩阵的和。
在这种情况下,函数的参数可以是任意个数的矩阵变量。
考虑以下的MATLAB函数:```matlabfunction result = sumOfMatrices(varargin)result = zeros(size(varargin{1}));for i = 1:narginresult = result + varargin{i};endend```在这个例子中,函数的参数使用了MATLAB中的特殊关键字varargin,表示可以接收任意个数的输入参数。
matlab isempty函数用法 -回复
matlab isempty函数用法-回复MATLAB中的isempty函数是一个非常常用的函数,它用来判断一个数组或矩阵是否为空。
在本文中,我们将详细介绍isempty函数的用法,并给出一些实例来帮助读者更好地理解。
首先,让我们来了解一下isempty函数的语法。
isempty函数的一般格式如下:isempty(A)其中,A是要判断的数组或矩阵。
isempty函数将返回一个逻辑值,如果A为空,则返回1;否则返回0。
现在,让我们来看一些具体的例子。
1. 判断一个空数组是否为空:matlabA = [];isEmpty = isempty(A)运行结果为:matlabisEmpty =1上面的例子中,我们创建了一个空数组A,并使用isempty函数判断A 是否为空。
由于A为空,所以返回值为1。
2. 判断一个非空数组是否为空:matlabB = [1, 2, 3];isEmpty = isempty(B)运行结果为:matlabisEmpty =在这个例子中,我们创建了一个非空数组B,并使用isempty函数判断B是否为空。
由于B非空,所以返回值为0。
3. 判断一个矩阵是否为空:matlabC = [1, 2; 3, 4];isEmpty = isempty(C)运行结果为:matlabisEmpty =在这个例子中,我们创建了一个非空矩阵C,并使用isempty函数判断C是否为空。
由于C非空,所以返回值为0。
4. 判断一个空字符串是否为空:matlabstr = '';isEmpty = isempty(str)运行结果为:matlabisEmpty =1在这个例子中,我们创建了一个空字符串str,并使用isempty函数判断str是否为空。
由于str为空,所以返回值为1。
5. 判断一个非空字符串是否为空:matlabstr = 'Hello, world!';isEmpty = isempty(str)运行结果为:matlabisEmpty =在这个例子中,我们创建了一个非空字符串str,并使用isempty函数判断str是否为空。
Matlab100个实例程序
程序代码:(代码标记[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','高斯分布',...。
matlab的一些函数
Matlab基本算术命令:数组的计算:x=[3,5,11,17,8,9,31,40,12];y=x+16 //数组里每个数加16y=sqrt(x) //数组每个数开平方n=length(x) //数组里偶数加2for i=1:nif mod(x(i),2)==0x(i)=x(i)+2endendsum(x(1:2:length(x))) //数组里系数为奇数的数的和========================================数组的阶乘运算须知:当x是一组数时,如:x=1:0.1:4此时:y=x^3、y=exp(x*x) 会出错应为:y=x.^3、y=exp(x.*x) 用“点乘”========================================数组操作命令:>> x=[3,1,5,7,9,2,6]; 定义一个数组>> x(3) 该数组的第三个数是?>> x(1:7) (显示该数组第1到第7个数)>> x(1:end-1) 示该数组1~(7-1)个数>> x(6:-2:1) 第六个数开始,从后往前隔着取数>> sum(x) (数组内所有数求和)========================================矩阵命令:>> A = [ 1 2 3; 3 4 5; 6 7 8] 按行写3X3矩阵>> B = [ [1 2 3]' [2 4 7]' [3 5 8]'] 按列写3X3矩阵>> B = zeros (m,n) m X n零矩阵>> E = ones (m, n) m X n单位矩阵>> N = rand(m, n) 随即矩阵>> A' 矩阵转置其他矩阵操作命令见"第一次作业"=====================================控制系统模型相关命令:用ode45 解常微分方程:例题:求解dy/dt = -2y/t + 4t 在区间[1,3]的解f=-2.*y./t+4*t //定义函数[T,Y]=ode45(f,[1 3],2); //调用ode45命令//[1,3]为区间,2为初值Y_analysis = T.^2 + 1./(T.^2); //size(T);size(Y);size(Y_analysis);plot(T,Y,'r',T,Y_analysis,'g')========================================传函模型:num1=[1]den1=[1000 50]sys=tf(num1,den1)========================================分子或分母由多个多项式乘积时的传函模型:例如:G(s) = 4(s+2)(s2+6s+6)/[s(s+1)3(s3+3s2+2s+5)]用conv命令处理:num = 4*conv([1 2],[1 6 6])den = conv([1 0],conv([1 1],conv([1 1],conv([1 1],[1 3 2 5])))) Sys=tf(num,den)或者另一种方法:例如1/(((s+1)^2+s+2)^3+1) ?s=tf('s'); //定义算子G=1/(((s+1)^2+s+2)^3+1)可以得出结果========================================零极点模型:>> h=zpk({[-3]},{[-1 -2 -5]},6)Zero/pole/gain:6 (s+3)-----------------(s+1) (s+2) (s+5)========================================状态空间模型:ss用法略三种模型之间的转换:>> [A,B,C,D]= tf2ss([1],[1,100])>> [z,p,k]=tf2zpk([3 23 46 22],[3 4 2 7 8 5])其它的看课件========================================两个传函之间的串联、并联与反馈:y1 y2 为两个不同的传递函数:>> y=series(y1,y2) 两模型串联>> y=paralle(y1,y2) 两模型并联>> yf=feedback(y,1) 加上单位负反馈后的传函-1时为单位正反馈1还可以替换为其他模型如y1========================================离散化命令:c2d例子:在采样周期T=0.1时进行离散化>> ts=0.1;>> c2d(h,ts,'tustin') 双线性变换可以不写''tustin则默认为zoh 模式========================================M 语言:本次考试所有命令都应被写到m 文件里,然后提交所以要会把命令写到m 文件中并运行。
matlab简单函数实例
matlab简单函数实例Matlab是一种功能强大的数学软件,它提供了许多简单函数,方便用户进行各种数学计算和数据处理。
本文将以几个简单函数实例为主题,介绍Matlab中的一些常用函数的使用方法和实际应用。
一、rand函数rand函数是一个常用的随机数生成函数,它可以生成0到1之间的均匀分布的随机数。
我们可以使用rand函数来模拟抛硬币的实验,例如模拟投掷10次硬币,统计正面出现的次数。
首先,我们可以使用rand函数生成一个1x10的随机数矩阵,然后使用条件判断来统计正面出现的次数。
最后,我们可以将结果打印出来,以便查看统计结果。
二、max函数max函数是一个常用的求最大值的函数,它可以返回一组数据中的最大值。
我们可以使用max函数来求解一个数组中的最大值,并将结果打印出来。
例如,我们可以定义一个包含10个随机数的数组,然后使用max函数求解最大值。
三、min函数min函数是一个常用的求最小值的函数,它可以返回一组数据中的最小值。
我们可以使用min函数来求解一个数组中的最小值,并将结果打印出来。
例如,我们可以定义一个包含10个随机数的数组,然后使用min函数求解最小值。
四、sum函数sum函数是一个常用的求和函数,它可以返回一组数据的和。
我们可以使用sum函数来求解一个数组中所有元素的和,并将结果打印出来。
例如,我们可以定义一个包含10个随机数的数组,然后使用sum函数求解和。
五、mean函数mean函数是一个常用的求平均值函数,它可以返回一组数据的平均值。
我们可以使用mean函数来求解一个数组中所有元素的平均值,并将结果打印出来。
例如,我们可以定义一个包含10个随机数的数组,然后使用mean函数求解平均值。
六、std函数std函数是一个常用的求标准差函数,它可以返回一组数据的标准差。
标准差是描述一组数据的离散程度的指标,它越大表示数据的离散程度越大,越小表示数据的离散程度越小。
我们可以使用std 函数来求解一个数组中所有元素的标准差,并将结果打印出来。
matlab程序设计实例解析
matlab程序设计实例解析MATLAB程序设计实例解析1.引言在本文档中,我们将详细分析几个MATLAB程序设计的实例,以帮助读者理解并掌握MATLAB的基本概念和应用。
每个实例都将包括程序代码、运行结果和解析过程。
2.实例一:________计算圆的面积2.1 实例描述本实例将演示如何使用MATLAB计算圆的面积。
给定圆的半径,程序将计算并输出圆的面积。
2.2 程序代码```% 计算圆的面积radius = input('请输入圆的半径:________')area = pi radius^2。
disp('圆的面积为:________', num2str(area))```2.3 运行结果及解析输入圆的半径为3,运行程序后,输出结果为:________```圆的面积为:________28.2743```程序中使用了`input`函数获取用户输入的半径值,并将其存储在变量`radius`中。
接着,通过`pi radius^2`计算圆的面积,并以字符串形式输出。
3.实例二:________矩阵相加3.1 实例描述本实例将演示如何使用MATLAB进行矩阵相加的运算。
给定两个矩阵,程序将计算并输出它们的和。
3.2 程序代码```% 矩阵相加matrix1 = 1, 2, 3。
4, 5, 6。
7, 8, 9。
matrix2 = 9, 8, 7。
6, 5, 4。
3, 2, 1。
sum_matrix = matrix1 + matrix2。
disp('两个矩阵的和为:________')disp(sum_matrix)```3.3 运行结果及解析运行程序后,输出结果为:________```两个矩阵的和为:________10 10 1010 10 1010 10 10```程序中,我们事先定义了两个矩阵`matrix1`和`matrix2`。
通过`matrix1 + matrix2`进行矩阵相加运算,并将结果存储在变量`sum_matrix`中。
matlab数值积分实例
数值积分 1.求积分dx e x ⎰--112,在积分区间中,点与点之间的间隔取为0.1.解:(一)用MATBLE 编写复化梯形求积函数:function I=T_quad(x,y)n=length(x);m=length(y);if n ~=merrorendh=(x(n)-x(1))/(n-1);a=[1 2*ones(1,n-2) 1];I =h/2*sum(a.*y);输入:x=-1:0.1:1;y=exp(-x.^2);I =T_quad(x,y)运行得到:I =1.4924(二)用MATBL 编写复化Simpson 求积函数:function I=S_quad(x,y);n=length(x);m=length(y);if n ~=merrorendif rem(n-1,2) ~=0I=T_quad(x,y);return;endN=(n-1)/2;h=(x(n)-x(1))/N;a=zeros(1,n);for k=1:Na(2*k-1)=a(2*k-1)+1;a(2*k)=a(2*k)+4;a(2*k+1)=a(2*k+1)+1;endI=h/6*sum(a.*y);输入:x= -1:0.1:1;y=exp(-x.^2);I= S_quad(x,y)运行得到:I =1.4936(三)用MATBL 编写复化Cotes 求积函数:function I=C_quad(x,y);n=length(x);m=length(y);if n ~=merrorendif rem(n-1,4) ~=0I=S_quad(x,y);returnendN=(n-1)/4;h=(x(n)-x(1))/N;a=zeros(1,n);for k=1:Na(4*k-3)=a(4*k-3)+7;a(4*k-2)=a(4*k-2)+32;a(4*k-1)=a(4*k-1)+12;a(4*k)=a(4*k)+32;a(4*k+1)=a(4*k+1)+7;endI=h/90*sum(a.*y);输入:x= -1:0.1:1;y=exp(-x.^2);I= C_quad(x,y)运行得:I =1.4936(四)利用trapz()函数,采用复化梯形公式求积分输入:x=-1:0.1:1;y=exp(-x.^2);I=trapz(x,y)输出:I =1.49242. 求积分dx e x ⎰--112,取精度要求510-=ε (一)用MATLAB 编写自适应步长的梯形公式function I=T_quad_iter(fun,a,b,ep)if nargin<4 ep=1e-5;endN=1;h=b-aT=h/2*(feval(fun,a)+feval(fun,b));while 1h=h/2;I=T/2;for k=1:NI=I+h*feval(fun,a+(2*k-1)*h);endif abs(I-T)<ep breakendN=2*N;T=IEnd输入:I=T_quad_iter(@(x)exp(-x.^2),-1,1)输出:I =1.4936(二)用MATLAB编写自适应步长的Simpson公式function I=S_quad_iter(fun,a,b,ep)if nargin<4 ep=1e-5endN=1;h=b-aT1=h/2*(feval(fun,a)+feval(fun,b));S0=T1;while 1h=h/2;T2=T1/2;for k=1:NT2=T2+h*feval(fun,a+(2*k-1)*h)endI=(4*T2-T1)/3;if abs(I-S0)<ep breakendN=2*N;T1=T2;S0=IEnd输入:I=S_quad_iter(@(x) exp(-x.^2),-1,-1)输出:I =1.4936(三)用quad()函数,采用自适应步长的Simposon求积分输入:I=quad(@(x) exp(-x.^2) ,-1,1)输出:I =1.4936。
matlab unique 函数
matlab unique 函数一、unique函数语法MATLAB中的unique函数的语法如下:```matlab[C,ia,ic] = unique(A)```A是一个一维向量或一个可用于创建一维向量的矩阵,C是包含输入矢量的唯一元素的向量,ia是包含输入矢量中的唯一元素的索引,ic是A中包含C中每个元素的索引。
二、unique函数功能unique函数的作用是在向量(或矩阵的一维)中找到唯一的元素,并返回一个包含这些唯一元素的向量。
这在处理数据时非常有用,特别是当需要对数据进行去重处理时。
三、unique函数用法1.基本用法unique函数最常见的用法是去重。
我们可以通过如下代码实现去重操作:```matlabA = [1 2 3 4 3 2 1];B = unique(A);```在这个例子中,从A中去掉重复的元素,并将结果保存在向量B中。
现在B的值为 [1 2 3 4]。
2.索引操作unique函数还可以返回输入矢量中每个唯一元素的索引,方法是在调用unique函数时附加第二个输出参数:ia。
```matlab[C,ia,ic] = unique(A);在这个代码中,ia是包含输入矢量中的唯一元素的索引向量。
可以使用ia向量来访问原始矢量中的这些元素。
3.排序操作我们可以通过不同的方式对返回的唯一元素进行排序,包括按升序、降序或自定义顺序排序。
```matlabC = [4 2 3 1];B = unique(A, 'sorted'); % 默认升序排列B = unique(A, 'sorted', 'descend'); % 降序排列B = unique(A, 'sorted', C); % 根据向量C中的元素自定义排序```在这些代码中,第一个例子按升序排列唯一的元素。
第二个例子按降序排列唯一的元素。
第三个例子根据向量C中的元素进行自定义排序。
matlab拼接函数
matlab拼接函数(原创版)目录1.MATLAB 简介2.MATLAB 中的拼接函数3.拼接函数的使用方法4.拼接函数的实例5.总结正文1.MATLAB 简介MATLAB(Matrix Laboratory)是一款广泛应用于科学计算、数据分析、可视化等领域的编程语言。
它以矩阵计算为基础,提供了丰富的函数库和工具箱,使得用户可以高效地完成各种数学计算和工程任务。
2.MATLAB 中的拼接函数在 MATLAB 中,拼接函数是一种用于将两个或多个矩阵、向量或标量进行水平或垂直拼接的函数。
常用的拼接函数有 horzcat、vertcat 和cat。
3.拼接函数的使用方法(1)horzcat:该函数用于将两个或多个矩阵或向量进行水平拼接。
使用方法如下:```matlabC = horzcat(A, B);```其中,A 和 B 是要进行拼接的矩阵或向量,C 是拼接后的结果。
(2)vertcat:该函数用于将两个或多个矩阵或向量进行垂直拼接。
使用方法如下:```matlabC = vertcat(A, B);```其中,A 和 B 是要进行拼接的矩阵或向量,C 是拼接后的结果。
(3)cat:该函数用于将两个或多个矩阵、向量或标量进行拼接。
使用方法如下:```matlabC = cat(1, A, B);```其中,A 和 B 是要进行拼接的矩阵、向量或标量,C 是拼接后的结果。
cat 函数还可以通过指定维度进行拼接,例如 cat(2, A, B) 表示将A 和B 进行垂直拼接。
4.拼接函数的实例假设我们有两个矩阵 A 和 B,我们想要将它们进行水平拼接。
可以使用如下代码:```matlabA = [1, 2, 3; 4, 5, 6];B = [7, 8, 9; 10, 11, 12];C = horzcat(A, B);disp(C);```运行上述代码,将输出拼接后的矩阵 C:```C =1 2 34 5 67 8 910 11 12```5.总结MATLAB 中的拼接函数为处理矩阵和向量提供了便捷的方法。
三个参数matlab程序,用matlab求定积分的三个实例代码
三个参数matlab程序,⽤matlab求定积分的三个实例代码⼀、符号积分符号积分由函数int来实现。
该函数的⼀般调⽤格式为:int(s):没有指定积分变量和积分阶数时,系统按findsym函数指⽰的默认变量对被积函数或符号表达式s求不定积分;int(s,v):以v为⾃变量,对被积函数或符号表达式s求不定积分;int(s,v,a,b):求定积分运算。
a,b分别表⽰定积分的下限和上限。
该函数求被积函数在区间[a,b]上的定积分。
a和b可以是两个具体的数,也可以是⼀个符号表达式,还可以是⽆穷(inf)。
当函数f关于变量x在闭区间[a,b]上可积时,函数返回⼀个定积分结果。
当a,b中有⼀个是inf 时,函数返回⼀个⼴义积分。
当a,b中有⼀个符号表达式时,函数返回⼀个符号函数。
例:求函数x^2+y^2+z^2的三重积分。
内积分上下限都是函数,对z积分下限是sqrt(x*y),积分上限是x^2*y;对y积分下限是sqrt(x),积分上限是x^2;对x的积分下限1,上限是2,求解如下:>>syms x y z %定义符号变量>>F2=int(int(int(x^2+y^2+z^2,z,sqrt(x*y),x^2*y),y,sqrt(x),x^2),x,1,2) %注意定积分的书写格式F2 =1610027357/6563700-6072064/348075*2^(1/2)+14912/4641*2^(1/4)+64/225*2^(3/4) %给出有理数解>>VF2=vpa(F2) %给出默认精度的数值解VF2 =224.92153573331143159790710032805⼆、数值积分1.数值积分基本原理求解定积分的数值⽅法多种多样,如简单的梯形法、⾟普⽣(Simpson)法、⽜顿-柯特斯(Newton-Cotes)法等都是经常采⽤的⽅法。
它们的基本思想都是将整个积分区间[a,b]分成n个⼦区间[xi,xi+1],i=1,2,…,n,其中x1=a,xn+1=b。
matlab中num2str函数的用法
matlab中num2str函数的用法Matlab是一种强大的数学软件,它被广泛应用于各种科学计算和数据分析任务中。
在Matlab中,有许多内置函数可以帮助我们处理数据,并且大多数函数都非常易于使用。
其中一个非常有用的函数是num2str函数,它可以将数字转换为字符串。
本文将介绍Matlab中num2str函数的用法,并提供一些实例来演示如何使用该函数。
1.什么是num2str函数?num2str函数是Matlab中的内置函数,它可以将数字转换为字符串。
该函数的语法如下:str = num2str(x)其中,x是要转换为字符串的数字,str是返回的字符串。
2.如何使用num2str函数?使用num2str函数非常简单。
只需要将要转换的数字作为函数的参数传递给它,然后它会返回一个字符串。
下面是一个简单的示例:x = 12345;str = num2str(x);disp(str);在这个例子中,我们将数字12345转换为字符串,并将结果打印到命令窗口中。
输出结果是:12345这表明我们已成功地将数字转换为字符串。
3.如何控制输出格式?num2str函数提供了一些选项,可以控制输出的格式。
下面是一些常用的选项:(1)precision:用于控制小数点后的位数。
例如,如果我们要将数字3.1415926转换为字符串,并将小数点后的位数限制为3位,可以使用以下代码:x = 3.1415926;str = num2str(x, '%.3f');disp(str);输出结果是:3.142(2)format:用于选择输出格式。
例如,如果我们要将数字12345转换为科学计数法表示的字符串,可以使用以下代码:x = 12345;str = num2str(x, '%e');disp(str);输出结果是:1.234500e+04(3)base:用于选择输出进制。
例如,如果我们要将数字255转换为十六进制表示的字符串,可以使用以下代码:x = 255;str = num2str(x, '%x');disp(str);输出结果是:ff(4)signed:用于控制是否输出符号。
matlab中xticks函数
matlab中xticks函数xticks函数是MATLAB绘图工具箱中的一种函数,被用来设置x轴标签。
本篇文章将详细讲解MATLAB中xticks函数的使用方法和常用参数,并给出一些具体的实例。
1. xticks函数的概述在MATLAB中,xticks函数被用于设置x轴的刻度标签,使得数据可视化更加美观和易于理解。
x轴的刻度标签通常由1个到多个数字或字符组成,这些数字或字符表示了数据点在x轴上的位置。
使用xticks函数可以在x轴上设置自定义的刻度标签,使得数据可视化更具表现力。
xticks函数的语法如下:xticks(ticks)其中,ticks参数是一个数值向量,它表示了x轴刻度标签的位置。
xticks函数可以将刻度标签设置为数值或字符。
下面是一个示例。
x = 0:pi/6:2*pi;y = sin(x);plot(x,y)xticks([0 pi/2 pi 3*pi/2 2*pi])xticklabels({'0','90°','180°','270°','360°'})上述代码的作用是:使用xticks函数和xticklabels函数来设置x轴刻度标签。
其中,ticks向量是用来标记x轴的位置,而xticklabels函数用来设置标签。
xticks函数是MATLAB中最基本的绘图函数之一,因为它可以用来设置x轴的标签,从而帮助使用者更好地理解图像。
xticks函数通常有三个参数:ticks、labels、和ax。
下面我们逐个说明这些参数的作用。
x = 1:10;y = x;plot(x,y)xticks([1 3 5 7 9])2.2 labels参数labels参数用来设置x轴标签的文字。
这个参数需要用一个字符向量来表示,其中每个元素都是一个字符串表示一个标签。
下面是一个示例代码:2.3 ax参数ax参数指定要修改的坐标轴。
matlab拼接函数
matlab拼接函数(实用版)目录1.MATLAB 简介2.MATLAB 中的拼接函数3.拼接函数的应用实例4.总结正文1.MATLAB 简介MATLAB 是一种广泛使用的数学软件,它被广泛应用于科学计算、数据分析、可视化以及算法开发等领域。
MATLAB 提供了丰富的函数库和强大的矩阵计算能力,使得用户可以更加高效地完成各种计算任务。
2.MATLAB 中的拼接函数在 MATLAB 中,拼接函数是一种用于将两个或多个矩阵或向量拼接在一起的函数。
常用的拼接函数有 horzcat、vertcat 和 cat。
- horzcat:将矩阵或向量横向拼接在一起,构成一个新的矩阵。
- vertcat:将矩阵或向量纵向拼接在一起,构成一个新的矩阵。
- cat:将矩阵或向量按照指定的方向拼接在一起,构成一个新的矩阵。
3.拼接函数的应用实例下面我们通过一个实例来说明拼接函数的使用方法。
假设我们有两个矩阵 A 和 B,我们想要将它们拼接在一起,构成一个新的矩阵 C。
可以使用以下代码实现:```matlab% 定义矩阵 A 和 BA = [1, 2, 3; 4, 5, 6];B = [7, 8, 9; 10, 11, 12];% 使用 horzcat 函数将矩阵 A 和 B 横向拼接在一起C = horzcat(A, B);% 显示拼接后的矩阵 Cdisp(C);```运行上述代码,可以得到拼接后的矩阵 C:```C =1 2 3 7 104 5 6 8 113 9 12```4.总结MATLAB 中的拼接函数为处理矩阵和向量提供了极大的便利。
用户可以根据需要选择合适的拼接函数,将矩阵或向量按照要求的方式拼接在一起。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ws=2*pi/Ts; %采样角频率
wc=ws/2; % 滤波器截止频率
n=-10:10; %采样点的数量
m=fix(length(n)/2);
%单边采样周期 fix为取整
nTs=n*Ts;
%计算每个采样Ts;
f=sinc(nTs/pi);
fa=f*Ts*wc/pi*sinc((wc/pi)*(ones(length(nTs),1)*t-nTs'*ones(1,length(
axis([-m*Ts m*Ts min(error) max(error)+0.1*max(error)]);
xlabel('t');
ylabel(' error(t)');
t))));
f2=sinc(t/pi);
subplot(311);
stem(nTs,f); %绘制采样信号
hold on
plot(t,f2,'r:');
%绘制包络
xlabel('t ');
title('对Sa(t)信号进行采样');
axis([-m*Ts m*Ts -0.5 1.2]);
hold off
plot(i,yy1,'o');
end
xlabel('t ');
title('重构信号');
axis([-m*Ts m*Ts -0.5 1.2]);
legend([h1,h2],'重构信号','分信号')
hold off
subplot(313);
error=abs(fa-f2);
plot(t,error);
p=get(gca,'position'); p(3)=2.4*p(3); set(gca,'position',p) title('f(t)=f1(t)*f2(t)') xlabel('t') 6.周期信号傅里叶级数 display('傅里叶展开的项数')
m=input('m='); t=-2*pi:0.01:2*pi;
stem(n2,x2,'filled') title('x2(n)') xlabel('n') subplot(2,2,3) stem(n,x,'filled') title('x(n)=n1(n)+x2(n)') xlabel('n') p=get(gca,'position'); p(3)=2.4*p(3); set(gca,'position',p)
1.三角波产生器 t=-3:0.01:3; f1=tripuls(t); subplot(3,1,1); plot(t,f1); axis([-3,3,-0.2,1.2]) set(gcf,'color','w'); f2=tripuls(t,4); subplot(3,1,2); plot(t,f2); axis([-3,3,-0.2,1.2]) %set(gcf,'color','w'); f3=tripuls(t,4,-1); subplot(3,1,3); plot(t,f3); axis([-3,3,-0.2,1.2])
subplot(312);
h1=plot(t,fa); %绘制重构信号
hold on
for i = -m*Ts:dt:m*Ts
ft=sinc(i/pi)*sinc(wc/pi*(t-i));
%绘制重构信号的各个风量
h2=plot(t,ft,'m:');
hold on
yy=sinc(i/pi);
yy1=yy*yy;
plot(w/pi,Y2,'r'); axis([-2,2,0,pi*10]); hold off
8.Sa 的采样与重构
%奈奎斯特k=1,0<k<1,过采样,k>1,欠采样
display('Please input the value of k');
k=input('k=');
wm=1;
%信号带宽
Ts=k*pi/wm; %采样间隔
n=round(length(t)/4); f=[ones(n,1);-1*ones(n,1);ones(n,1);-1*ones(n+1,1)]; ones(314,1); y=zeros(m+1,max(size(t))); figure(1); y(m+1,:)=f';
figure(1); plot(t/pi,y(m+1,:));
grid; axis([-2 2 -1.5 1.5]); title('周期方波'); xlabel(size(t)); xlabel('单位:pi','Fontsize',8); x=zeros(size(t)); kk='1' for k =1:2:2*m-1
pause; x=x+sin(k*t)/k; y((k+1)/2,:)=4/pi*x; plot(t/pi,y(m+1,:)); hold on; plot(t/pi,y((k+1)/2,:)); hold off; grid; axis([-2 2 -1.5 1.5]); title(strcat('第',kk,'次谐波叠加')); xlabel('单位:pi','Fontsize',8);
plot(t,y); axis([0 6 -1.1 1.1]); xlabel('t 单位:s','Fontsize',8'); title('f(t)'); line([0 6],[0 0],'color',[0 0 0]); N=300; k=-N:N; W=2*pi*5; w=k*W/N; Y=0.01*y*exp(-j*t'*w); Y=abs(Y); subplot(222); plot(w/pi,Y); axis([-2,2,0,pi*7+0.2]) xlabel(' \omega 单位:s'); title('F(j\omega)'); subplot(223); plot(t,y,'b:'); hold on t2=0:Ts:40; y2=cos(2/3*pi*t2); stem(t2,y2); axis([0 6 -1.1 1.1]); xlabel('t 单位:s','Fontsize',8'); title('fs(s)'); hold off Y2=Ts*y2*exp(-j*t2'*w); Y2=abs(Y2); subplot(224); plot(w/pi,Y,'b') xlabel(' \omega 单位:s'); title('Fs(omega)'); hold on
kk=strcat(kk,',',num2str(k+2)); end pause; plot(t/pi,y(1:m+1,:)); grid; axis([-2 2 -1.5 1.5]); title('各次谐波叠加'); xlabel('单位:pi','Fontsize',8); .
7.cos(2/3pi*t)的采样 display('奈奎斯特周期1.5s,Ts<1.5,过采样,Ts>1.5,欠采样'); display('Please input the value of sample period'); Ts=input('Ts='); t=0:0.01:40; y=cos(2/3*pi*t); subplot(221);
2.离散序列的相加与相乘 function[x,n]=jxl(x1,x2,n1,n2) n=min(min(n1),min(n2)):max(max(n1),max(n2)); s1=zeros(1,length(n));s2=s1; s1(find((n>=min(n1))&(n<=max(n1))==1))=x1; s2(find((n>=min(n2))&(n<=max(n2))==1))=x2; x=s1+s2;//x=s1.*s2:%序列乘 axis([(min(min(n1),min(n2))-1),(max(max(n1),max(n2))+1),(min(x)-0.5), (max(x)+0.5)])
3.序列的反摺 function[x,n]=xlfz(x1,n1) x=fliplr(x1);n=fliplr(n1); stem(n,x,'filled') axis([min(n)-1,max(n)+1,min(x)-0.5,max(x)+0.5])
4.序列的卷积 function[x,n]=gghconv(x1,x2,n1,n2) x=conv(x1,x2) ns=n1(1)+n2(1); leg=length(x1)+length(x2)-2; n=ns:(ns+leg) subplot(2,2,1) stem(n1,x1,'filled') title('x1(n)') xlabel('n') subplot(2,2,2)