matlab例题.docx
- 文档编号:18555127
- 上传时间:2023-08-19
- 格式:DOCX
- 页数:37
- 大小:25.26KB
matlab例题.docx
《matlab例题.docx》由会员分享,可在线阅读,更多相关《matlab例题.docx(37页珍藏版)》请在冰点文库上搜索。
matlab例题
matlab例题
例7输入x,y的值,并将它们的值互换后输出。
程序如下:
x=input('Inputxplease.');
y=input('Inputyplease.');
z=x;
x=y;
y=z;
disp(x);
disp(y);
例8求一元二次方程ax2+bx+c=0的根。
程序如下:
a=input('a=?
');
b=input('b=?
');
c=input('c=?
');
d=b*b-4*a*c;
x=[(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a)];
disp(['x1=',num2str(x
(1)),',x2=',num2str(x
(2))]);
例9计算分段函数的值。
程序如下:
x=input('请输入x的值:
');
ifx<=0
y=(x+sqrt(pi))/exp
(2);
else
y=log(x+sqrt(1+x*x))/2;
end
例10输入一个字符,若为大写字母,则输出其对应的小写字母;若为小写字母,则输出其对应的大写字母;若为数字字符则输出其对应的数值,若为其他字符则原样输出。
c=input('请输入一个字符','s');
ifc>='A'&c<='Z'
disp(setstr(abs(c)+abs('a')-abs('A')));
elseifc>='a'&c<='z'
disp(setstr(abs(c)-abs('a')+abs('A')));
elseifc>='0'&c<='9'
disp(abs(c)-abs('0'));
else
disp(c);
end
例11某商场对顾客所购买的商品实行打折销售,标准如下(商品价格用price来表示):
price<200没有折扣
200?
price<5003%折扣
500?
price<10005%折扣
1000?
price<25008%折扣
2500?
price<500010%折扣
5000?
price14%折扣
输入所售商品的价格,求其实际销售价格。
程序如下:
price=input('请输入商品价格');
switchfix(price/100)
case{0,1}%价格小于200
rate=0;
case{2,3,4}%价格大于等于200但小于500
rate=3/100;
casenum2cell(5:
9)%价格大于等于500但小于1000
rate=5/100;
casenum2cell(10:
24)%价格大于等于1000但小于2500
rate=8/100;
casenum2cell(25:
49)%价格大于等于2500但小于5000
rate=10/100;
otherwise%价格大于等于5000
rate=14/100;
end
price=price*(1-rate)%输出商品实际销售价格例12矩阵乘法运算要求两矩阵的维数相容,否则会出错。
先求两矩阵的乘积,若出错,
则自动转去求两矩阵的点乘。
程序如下:
A=[1,2,3;4,5,6];B=[7,8,9;10,11,12];
try
C=A*B;
catch
C=A.*B;
end
C
lasterr
例13一个三位整数各位数字的立方和等于该数本身则称该数为水仙花数。
输出全部水仙
花数。
程序如下:
form=100:
999
m1=fix(m/100);%求m的百位数字
m2=rem(fix(m/10),10);%求m的十位数字
m3=rem(m,10);%求m的个位数字rem求余数ifm==m1*m1*m1+m2*m2*m2+m3*m3*m3disp(m)
end
end
例14已知,当n=100时,求的值。
程序如下:
程序如下:
y=0;
n=100;
fork=1:
n
y=y+1/(2*k-1);end
y
例16从键盘输入若干个数,当输入0时结束输入,求
这些数的平均值和它们之和。
程序如下:
sum=0;
cnt=0;
val=input('Enteranumber(endin0):
');
while(val~=0)
sum=sum+val;
cnt=cnt+1;
val=input('Enteranumber(endin0):
');
end
if(cnt>0)
sum
mean=sum/cntend
例17若一个数等于它的各个真因子之和,则称该数为完数,如6=1+2+3,所以6是完数。
求[1,500]之间的全部完数。
form=1:
500
s=0;
fork=1:
m/2
ifrem(m,k)==0%rem求m/k的余数
s=s+k;
end
end
ifm==s
disp(m);
end
end
例18求[100,200]之间第一个能被21整除的整数。
程序如下:
forn=100:
200ifrem(n,21)~=0
continueend
break
end
n
例19:
函数的递归调用
编写函数nj计算自然数n的阶乘
functiony=nj(n)
%y=nj(n)计算n的阶乘
%输入参数n是自然数
%输出参数y是n的阶乘
if(n<0)|(floor(n)~=n)%如果输入参数不是自然数
error('输入参数必须是自然数')%则显示出错信息
end
ifn==0
y=1;
elseifn==1
y=1;
else
y=n*nj(n-1);
end
例20猜数游戏。
首先由计算机产生[1,100]之间的随机整数,然后由用户猜测所产生的随
机数。
根据用户猜测的情况给出不同提示,如猜测的数大于产生的数,则显示“High”,小
于则显示“Low”,等于则显示“Youwon”,同时退出游戏。
用户最多可以猜7次。
程序如下:
%Playthegameofguessthenumberx=fix(100*rand);%arandomnumbercalculatedbythecomputer
n=7;
test=1;
fork=1:
7
numb=int2str(n);
disp(['Youhavearightto',numb,'guesses'])
disp(['Aguessisanumberbetween0and100'])
guess=input('Enteryourguess:
');ifguess disp('Low') elseifguess>x disp('High') else disp('Youwon') test=0; break; end n=n-1; end iftest==1 disp('Youlost') end 例21: 递推与递归 核反应堆中有A和B两种粒子,每秒中内1个A粒子分裂成 3个B粒子,而1个B粒子分裂成1个A粒子和2个B粒子。 若在时刻t=0反应堆中只有1个A粒子,问t=20时反应堆中有多少个A粒子,多少个B粒子,共有多少个粒子,function[outf,outg,outfg]=fg(x) %函数[outf,outg,outfg]=fg(x)计算A粒子与B粒子的个数%输入参数x是自然数 %输出参数outf是A粒子个数 %输出参数outg是B粒子个数 %输出参数outfg是A粒子和B粒子的总数 %主函数 [m,n]=size(x);%输入参数x的行数和列数 if(m~=1)|(n~=1)|(x<0)|(round(x)~=x)%如果输入参数不是自然数 y=[];%输出为空 disp('输入参数应为自然数');%显示出错 elseifx>=0 outf=f(x); outg=g(x); outfg=outf+outg; end functiony=f(x); %子函数,计算A粒子 ifx==0 y=1; elseifx>0 y=g(x-1); end functiony=g(x); %子函数,计算B粒子 ifx==0 y=0; elseifx>0 y=3*f(x-1)+2*g(x-1); end 例4-3在0? x? 2,区间内,绘制曲线 y=2e-0.5xcos(4πx) 程序如下: x=0: pi/100: 2*pi; y=2*exp(-0.5*x).*cos(4*pi*x);plot(x,y) 例4-6用不同标度在同一坐标内绘制曲线y1=0.2e-0.5xcos(4πx)和y2=2e-0.5xcos(πx)。 程序如下: x=0: pi/100: 2*pi; y1=0.2*exp(-0.5*x).*cos(4*pi*x);y2=2*exp(-0.5*x).*cos(pi*x);plotyy(x,y1,x,y2 例4-7采用图形保持,在同一坐标内绘制曲线y1=0.2e-0.5xcos(4πx)和y2=2e-0.5xcos(πx)。 程序如下: x=0: pi/100: 2*pi; y1=0.2*exp(-0.5*x).*cos(4*pi*x);plot(x,y1) holdon y2=2*exp(-0.5*x).*cos(pi*x);plot(x,y2); holdoff 例4-8在同一坐标内,分别用不同线型和颜色绘制曲线y1=0.2e-0.5xcos(4πx)和y2=2e-0.5xcos(πx),标记两曲线交叉点。 程序如下: x=linspace(0,2*pi,1000); y1=0.2*exp(-0.5*x).*cos(4*pi*x);y2=2*exp(-0.5*x).*cos(pi*x);k=find(abs(y1-y2)<1e-2);%查找y1与y2相等点(近似相等)的下标x1=x(k);%取y1与y2相等点的x坐标y3=0.2*exp(-0.5*x1).*cos(4*pi*x1);%求y1与y2值相等点的y坐标plot(x,y1,x,y2,„k: ? x1,y3,„bp? );%y1缺省蓝色实线,y2黑色 点线,y3蓝色五角星例4-9在0? x? 2,区间内,绘制曲线y1=2e-0.5x和y2=cos(4πx),并给图形添加图形标注。 程序如下: x=0: pi/100: 2*pi; y1=2*exp(-0.5*x); y2=cos(4*pi*x); plot(x,y1,x,y2) title('xfrom0to2{\pi}');%加图形标题 xlabel('VariableX');%加X轴说明 ylabel('VariableY');%加Y轴说明 text(0.8,1.5,'曲线y1=2e^{-0.5x}');%在指定位置添加图形说明text(2.5,1.1,'曲线y2=cos(4{\pi}x)');legend(„y1? „y2? )%加图例 例4-10在同一坐标中,可以绘制3个同心圆,并加坐标控制。 程序如下: t=0: 0.01: 2*pi; x=exp(i*t); y=[x;2*x;3*x]'; plot(y) gridon;%加网格线 boxon;%加坐标边框 axisequal%坐标轴采用等刻度 例4-11用fplot函数绘制f(x)=cos(tan(πx))的曲线。 命令如下: fplot('cos(tan(pi*x))',[0,1],1e-4)例4-13绘制y=10x2的对数坐标图并与直角 坐标图进行比较。 x=1: 10; y=10*(x.^2); subplot(2,2,1),plot(x,y),title('直角坐标') subplot(2,2,2),loglog(x,y),title('双对数') subplot(2,2,3),semilogx(x,y),title('x轴对数') subplot(2,2,4),semilogy(x,y),title('y轴对数') 例4-12绘制r=sin(t)cos(t)的极坐标图,并标记数据点。 程序如下: t=0: pi/50: 2*pi; r=sin(t).*cos(t); polar(t,r,'-*'); 例4-14分别以条形图、阶梯图、杆图和填充图形式绘制曲线y=2sin(x)。 程序如下: x=0: pi/10: 2*pi; y=2*sin(x); subplot(2,2,1);bar(x,y,'g');title('bar(x,y,''g'')');axis([0,7,-2,2]); subplot(2,2,2);stairs(x,y,'b');title('stairs(x,y,''b'')');axis([0,7,-2,2]); subplot(2,2,3);stem(x,y,'k');title('stem(x,y,''k'')');axis([0,7,-2,2]); subplot(2,2,4);fill(x,y,'y');title('fill(x,y,''y'')');axis([0,7,-2,2]); 例4-15绘制图形: (1)某企业全年各季度的产值(单位: 万元)分别为: 2347,1827,2043,3025,试用饼图作统计 分析。 (2)绘制复数的相量图: 7+2.9i、2-3i和-1.5-6i。 程序如下: subplot(1,2,1); pie([2347,1827,2043,3025]);title('饼图'); legend('一季度','二季度','三季度','四季度'); subplot(1,2,2); compass([7+2.9i,2-3i,-1.5-6i]);title('相量图'); 例4-17绘制三维曲线。 程序如下: t=0: pi/100: 20*pi; x=sin(t); y=cos(t); z=t.*sin(t).*cos(t); plot3(x,y,z); title('Linein3-DSpace');xlabel('X');ylabel('Y');zlabel('Z'); gridon; 例4-18绘制三维曲面图z=sin(x+sin(y))-x/10。 程序如下: [x,y]=meshgrid(0: 0.25: 4*pi);z=sin(x+sin(y))-x/10; mesh(x,y,z); axis([04*pi04*pi-2.51]);例4-19在xy平面内选择区域[-8,8]×[-8,8],绘制4种三维曲面图。 程序如下: [x,y]=meshgrid(-8: 0.5: 8);z=sin(sqrt(x.^2+y.^2))./sqrt(x.^2+y.^2+eps); subplot(2,2,1); mesh(x,y,z);title('mesh(x,y,z)')subplot(2,2,2); meshc(x,y,z);title('meshc(x,y,z)')subplot(2,2,3); meshz(x,y,z)title('meshz(x,y,z)')subplot(2,2,4); surf(x,y,z);title('surf(x,y,z)')例4-20绘制标准三维曲面图形。 程序如下: t=0: pi/20: 2*pi; [x,y,z]=cylinder(2+sin(t),30);subplot(2,2,1);surf(x,y,z);[x,y,z]=sphere; subplot(2,2,2);surf(x,y,z);[x,y,z]=peaks(30); subplot(2,1,2);surf(x,y,z);例4-21绘制三维图形: (1)绘制魔方阵的三维条形图。 (2)以三维杆图形式绘制曲线y=2sin(x)。 (3)已知x=[2347,1827,2043,3025],绘制饼图。 (4)用随机的顶点坐标值画出五个黄色三角形。 程序如下: subplot(2,2,1); bar3(magic(4)) subplot(2,2,2); y=2*sin(0: pi/10: 2*pi);stem3(y); subplot(2,2,3); pie3([2347,1827,2043,3025]);subplot(2,2,4); fill3(rand(3,5),rand(3,5),rand(3,5),'y') 例4-22绘制多峰函数的瀑布图和等高线图。 程序如下: subplot(1,2,1); [X,Y,Z]=peaks(30); waterfall(X,Y,Z) xlabel('X-axis'),ylabel('Y-axis'),zlabel('Z-axis'); subplot(1,2,2); contour3(X,Y,Z,12,'k');%其中12代表高度的等级数xlabel('X-axis'),ylabel('Y-axis'),zlabel('Z-axis'); 例4-23绘制椭球面 xuv,3cossin, yuv,2coscos, zu,sin, u=-2*pi: 0.1: 2*pi; v=-2*pi: 0.1: 2*pi; ezmesh('3*cos(u)*sin(v)','2*cos(u)*cos(v)','sin(u)', [-2*pi,2*pi,-2*pi,2*pi])例6-31绘制了peaks函数曲面并且将它绕z轴旋转。 程序如下 [X,Y,Z]=peaks(30); surf(X,Y,Z) axis([-3,3,-3,3,-10,10])axisoff; shadinginterp; colormap(hot); m=moviein(20);%建立一个20列大矩阵fori=1: 20 view(-37.5+24*(i-1),30)%改变视点 m(: i)=getframe;%将图形保存到m矩阵end movie(m,2);%播放画面2次读取图像信息INFO=imfinfo('FILENAME.FMT') 【例】按256灰度级显示【例】按256灰度级显示 I=imread('moon.tif');I=imread('moon.tif'); imshow(I,256)imshow(I,256) colorbarcolorbar 【例】按8灰度级显示【例】按8灰度级显示 I=imread('moon.tif');I=imread('moon.tif'); imshow(I,8)imshow(I,8) colorbarcolorbar 【例】按最大灰度范围显示【例】按最大灰度范围显示 I=imread('moon.tif');I=imread('moon.tif'); imshow(I,[])imshow(I,[]) colorbarcolorbar 【例】按指定灰度范围显示【例】按指定灰度范围显示 I=imread('moon.tif');I=imread('moon.tif'); imshow(I,[64,128])imshow(I,[64,128]) colorbarcolorbar 【例】双精度灰度图像【例】双精度灰度图像 bw1=zeros(100,100);bw1=zeros(100,100); bw1(2: 2: 98,2: 2: 98)=1;bw1(2: 2: 98,2: 2: 98)=1; imshow(bw1);imshow(bw1); whosbw1whosbw1 【例】8位的灰度图像【例】8位的灰度图像 bw1=zeros(100,100);bw1=zeros(100,100); bw1(2: 2: 98,2: 2: 98)=1;bw1(2: 2: 98,2: 2: 98)=1; bw2=uint8(bw1);bw2=uint8(bw1); imshow(bw2,[]);imshow(bw2,[]); colorbarcolorbar whosbw2whosbw2 【例】二值图像【例】二值图像 bw1=zeros(100,100);bw1=zeros(100,100); bw1(2: 2: 98,2: 2: 98)=1;bw1(2: 2: 98,2: 2: 98)=1; bw2=uint8(bw1);bw2=uint8(bw1); bw3=bw2~=0;bw3=bw2~=0; imshow(bw3);imshow(bw3); whosbw3whosbw3 【例】显示二值图像【例】显示二值图像 BW=imread('circles.tif');BW=imread('circles.tif'); imshow(BW);imshow(BW); 【例】取反显示二值图像【例】取反显示二值图像BW=imread('circles.tif');BW=imread('circles.tif');imshow(~BW);imshow(~BW); 【例】显示二值图像【例】显示二值图像 clfclf BW=imread('circles.tif');BW=imread('circles.tif');imshow(BW,[100;001]);imshow(BW,[100;001]); 【例】显示索引图像【例】显示索引图像 [X,MAP]=imread('canoe.tif');[X,MAP]=imread('canoe.tif');imshow(X,MAP);imshow(X,MAP); colorbarcolorbar 【例】显示伪彩色图像【例】显示伪彩色图像 I=imread('moon.tif');I=imread('moon.tif');imshow(I,jet(256))imshow(I,jet(256)) colorbarcolorbar 显示真彩色图像。 显示真彩色图像。 【例】【例】 rgb=imread('flowers.tif');rgb=imread('flowers.tif');imshow(rgb);imshow(rgb); 例如: 显示多帧图像数组I的第七帧例如: 显示多帧
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlab 例题