matlab例题Word格式.docx
《matlab例题Word格式.docx》由会员分享,可在线阅读,更多相关《matlab例题Word格式.docx(37页珍藏版)》请在冰点文库上搜索。
a'
)-abs('
)));
elseifc>
&
z'
disp(setstr(abs(c)-abs('
)+abs('
0'
9'
disp(abs(c)-abs('
));
disp(c);
例11某商场对顾客所购买的商品实行打折销售,标准如下(商品价格用price来表示):
price<
200没有折扣
200?
5003%折扣
500?
10005%折扣
1000?
25008%折扣
2500?
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;
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;
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)
例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;
if(cnt>
0)
sum
mean=sum/cntend
例17若一个数等于它的各个真因子之和,则称该数为完数,如6=1+2+3,所以6是完数。
求[1,500]之间的全部完数。
form=1:
500
s=0;
m/2
ifrem(m,k)==0%rem求m/k的余数
s=s+k;
ifm==s
disp(m);
例18求[100,200]之间第一个能被21整除的整数。
forn=100:
200ifrem(n,21)~=0
continueend
break
例19:
函数的递归调用
编写函数nj计算自然数n的阶乘
functiony=nj(n)
%y=nj(n)计算n的阶乘
%输入参数n是自然数
%输出参数y是n的阶乘
if(n<
0)|(floor(n)~=n)%如果输入参数不是自然数
error('
输入参数必须是自然数'
)%则显示出错信息
ifn==0
y=1;
elseifn==1
y=n*nj(n-1);
例20猜数游戏。
首先由计算机产生[1,100]之间的随机整数,然后由用户猜测所产生的随
机数。
根据用户猜测的情况给出不同提示,如猜测的数大于产生的数,则显示“High”,小
于则显示“Low”,等于则显示“Youwon”,同时退出游戏。
用户最多可以猜7次。
%Playthegameofguessthenumberx=fix(100*rand);
%arandomnumbercalculatedbythecomputer
n=7;
test=1;
7
numb=int2str(n);
Youhavearightto'
numb,'
guesses'
])
Aguessisanumberbetween0and100'
guess=input('
Enteryourguess:
ifguess<
x
disp('
Low'
)
elseifguess>
High'
Youwon'
test=0;
break;
n=n-1;
iftest==1
Youlost'
例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=[];
%输出为空
输入参数应为自然数'
%显示出错
elseifx>
outf=f(x);
outg=g(x);
outfg=outf+outg;
functiony=f(x);
%子函数,计算A粒子
ifx==0
0
y=g(x-1);
functiony=g(x);
%子函数,计算B粒子
y=3*f(x-1)+2*g(x-1);
例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)。
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)。
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);
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?
2,区间内,绘制曲线y1=2e-0.5x和y2=cos(4πx),并给图形添加图形标注。
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:
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)的极坐标图,并标记数据点。
pi/50:
r=sin(t).*cos(t);
polar(t,r,'
-*'
例4-14分别以条形图、阶梯图、杆图和填充图形式绘制曲线y=2sin(x)。
pi/10:
y=2*sin(x);
subplot(2,2,1);
bar(x,y,'
g'
title('
)'
axis([0,7,-2,2]);
subplot(2,2,2);
stairs(x,y,'
b'
subplot(2,2,3);
stem(x,y,'
k'
subplot(2,2,4);
fill(x,y,'
y'
例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]);
饼图'
legend('
一季度'
二季度'
三季度'
四季度'
subplot(1,2,2);
compass([7+2.9i,2-3i,-1.5-6i]);
相量图'
例4-17绘制三维曲线。
20*pi;
x=sin(t);
y=cos(t);
z=t.*sin(t).*cos(t);
plot3(x,y,z);
Linein3-DSpace'
xlabel('
X'
Y'
zlabel('
例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);
mesh(x,y,z)'
)subplot(2,2,2);
meshc(x,y,z);
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);
surf(x,y,z)'
)例4-20绘制标准三维曲面图形。
pi/20:
[x,y,z]=cylinder(2+sin(t),30);
subplot(2,2,1);
[x,y,z]=sphere;
[x,y,z]=peaks(30);
subplot(2,1,2);
例4-21绘制三维图形:
(1)绘制魔方阵的三维条形图。
(2)以三维杆图形式绘制曲线y=2sin(x)。
(3)已知x=[2347,1827,2043,3025],绘制饼图。
(4)用随机的顶点坐标值画出五个黄色三角形。
bar3(magic(4))
y=2*sin(0:
2*pi);
stem3(y);
pie3([2347,1827,2043,3025]);
subplot(2,2,4);
fill3(rand(3,5),rand(3,5),rand(3,5),'
)
例4-22绘制多峰函数的瀑布图和等高线图。
[X,Y,Z]=peaks(30);
waterfall(X,Y,Z)
X-axis'
),ylabel('
Y-axis'
),zlabel('
Z-axis'
contour3(X,Y,Z,12,'
%其中12代表高度的等级数xlabel('
例4-23绘制椭球面
xuv,3cossin,
yuv,2coscos,
zu,sin,
u=-2*pi:
0.1:
v=-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轴旋转。
程序如下
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('
imshow(I,256)imshow(I,256)
colorbarcolorbar
【例】按8灰度级显示【例】按8灰度级显示
imshow(I,8)imshow(I,8)
【例】按最大灰度范围显示【例】按最大灰度范围显示
imshow(I,[])imshow(I,[])
【例】按指定灰度范围显示【例】按指定灰度范围显示
imshow(I,[64,128])imshow(I,[64,128])
【例】双精度灰度图像【例】双精度灰度图像
bw1=zeros(100,100);
bw1=zeros(100,100);
bw1(2:
2:
98,2:
98)=1;
bw1(2:
imshow(bw1);
imshow(bw1);
whosbw1whosbw1
【例】8位的灰度图像【例】8位的灰度图像
bw2=uint8(bw1);
bw2=uint8(bw1);
imshow(bw2,[]);
imshow(bw2,[]);
whosbw2whosbw2
【例】二值图像【例】二值图像
bw3=bw2~=0;
bw3=bw2~=0;
imshow(bw3);
imshow(bw3);
whosbw3whosbw3
【例】显示二值图像【例】显示二值图像
BW=imread('
circles.tif'
BW=imread('
imshow(BW);
imshow(BW);
【例】取反显示二值图像【例】取反显示二值图像BW=imread('
imshow(~BW);
clfclf
imshow(BW,[100;
001]);
【例】显示索引图像【例】显示索引图像
[X,MAP]=imread('
canoe.tif'
[X,MAP]=imread('
imshow(X,MAP);
【例】显示伪彩色图像【例】显示伪彩色图像
imshow(I,jet(256))imshow(I,jet(256))
显示真彩色图像。
显示真彩色图像。
【例】【例】
rgb=imread('
flowers.tif'
rgb=imread('
imshow(rgb);
例如:
显示多帧图像数组I的第七帧例如:
显示多帧