文档库 最新最全的文档下载
当前位置:文档库 › MATLAB

MATLAB

班级:2008级电信班姓名:李刚学号:222008315222056

实验一:matlab的基本操作

一、实验目的:

1、熟悉MATLAB软件环境;

2、熟悉MATLAB的常用运算符;

3、了解MATLAB的一些常用函数;

二、实验内容:

1、学习MATLAB软件的窗口和菜单的基本操作。

2、掌握基本MATLAB函数的使用。

3、利用基本矩阵产生3×3和15×8的单位阵、全1、阵全0、阵均匀分布随机阵([-1,

1]之间),正太分布随机阵。

4、产生一均匀分布在(-5,5)之间的随机阵(5×2),要求精确到小数点后一位。

5、利用randn函数产生均值为0,方差为1的10×10正太分布随机阵A,然后统计A中大

于-0.5且小于0.5的元素的个数。

6、有一矩阵A,找出矩阵中值大于1的元素,并将它们重新排列成列向量B。

7、在一测量矩阵A(100×3)中,存在奇异值,编程实现删去奇异值所在行的行。

一、实验结果:

1)matlab的窗口和菜单:

3)>> y=ones(3,3)

y =

1 1 1

1 1 1

1 1 1

>> y=ones(3,3)*0

y =

0 0 0

0 0 0

0 0 0

>> y=eye(3,3)

y =

1 0 0

0 1 0

0 0 1

>> y=eye(3,3)

y =

1 0 0

0 1 0

0 0 1

>> y=rand(3,3)*2-1

y =

0.9298 0.9143 -0.7162

-0.6848 -0.0292 -0.1565

0.9412 0.6006 0.8315

>> y=randn(3,3)*2-1

y =

-1.8651 -0.4246 1.3783

-4.3312 -3.2929 -1.0753

-0.7493 1.3818 -0.3454

4)程序:>> y=round(rand(5,2)*100)./100 y =

0.1100 0.8700

0.9600 0.0800

0 0.4000

0.7700 0.2600

0.8200 0.8000

>> y=5-10*y

y =

3.9000 -3.7000

-4.6000 4.2000

5.0000 1.0000

-2.7000 2.4000

-3.2000 -3.0000

5)程序:y=randn(10,10);

>> y1=y>-0.5;

>> y2=y<0.5;

>> x=y1.*y2

x =

1 1 1 1 0 0 1 0 0 1

0 0 0 0 1 0 1 1 0 1

1 0 0 0 0 0 0 1 0 0

1 0 0 0 0 0 0 1 0 0

0 1 0 0 0 0 1 0 1 1

0 1 0 0 0 0 0 1 1 0

0 0 0 0 1 1 0 1 0 0

1 1 0 0 0 0 0 1 0 0

1 1 0 1 0 1 1 0 0 0

1 0 0 1 1 1 0 1 1 1 >> z=sum(x)

z =

6 5 1 3 3 3 4

7 3 4 >> sum(z)

ans =

39

6)程序:>> a=rand(5,5)*3

a =

1.2942 0.4082

2.5591 0.2279 1.2518

2.7319 2.6079 1.8662 0.7197 0.1490

0.5455 1.7391 1.0529 0.3700 2.7081

0.7914 1.6496 1.5397 0.5517 2.8344

0.4366 0.4349 1.2054 0.7199 1.4726

[i,j,v]=find((a>1).*a)

结果:

v =

1.2942

2.7319

2.6079

1.7391

1.6496

2.5591

1.8662

1.0529

1.5397

1.2054

1.2518

2.7081

2.8344

1.4726

>> A=rand(30,3)*120;

>> [i,j]=find(A>100);

>> A(i,:)=[]

28.3477 26.2412 29.1342

14.3275 12.6958 53.0883 72.8765 13.1637 82.5355

54.0165 7.6310 43.1074

55.0471 48.5496 88.3608 79.4334 53.8047 47.3649 92.4343 43.8979 82.0099 42.0262 91.6206 84.4857 79.4412 75.3476 53.0766 49.9390 92.6376 2.3493 30.7729 23.0434 32.4325 73.6153 16.6649 23.6465 69.8699 83.5520 98.6065 64.8887 11.2584 51.5906 31.7735 63.6413 46.9420 14.3057 58.1824 47.6150 77.4662 80.5717 90.6093 57.5356 88.9510 45.2875 76.7180 62.4063 25.9223 65.3659 41.7255 94.8489 65.2663 70.3310 39.3079 86.5256 31.4574 80.5517 62.6994 5.3345 52.6374

班级:08级电信班姓名:李刚学号:222008315222056

实验二:matlab绘图(1)

一、实验目的:

1、了解MATLAB图形功能。

2、掌握通用图形函数,二维三维图形函数的编程方法。

3、运用MATLAB完成课后习题。

二、验内容:

1、画出对数和指数函数的曲线,并分别加上标题、轴标记和曲线说明。

2、将图形窗口分成两格,分别绘制正割和余割函数曲线,并加上适当的标注。

3、设有函数y=e x+5+x3,在半对数坐标系中绘制出曲线(x∈[1,10])。

4、绘制出多峰peaks和三角函数的多条曲线。

5、将图形窗口分成两格,并分别绘制出以下函数在区间上的曲线。

Y1=2x+5

Y2=x2-3x+1

利用axis调整轴刻度,使它们具有相同的缩放尺寸。

二、验结果:

1程序1:x=-2:.1:2;

y1=exp(x);

plot(x,y1,'-');

title('指数函数')

xlabel('x')

ylabel('y')

gtext('y=e^x')

程序2:x=-2:.1:2;

y1=exp(x);

plot(x,y1,'-');

title('对数函数')

xlabel('x')

ylabel('y')

gtext('y=e^x')

结果1:

结果2:

2实验程序:

>>

x=-pi:pi/100:pi; figure(1); subplot(2,1,1) y1=sec(x);

plot(x,y1);

title('曲线1') gtext('正割函数')

subplot(2,1,2) y2=csc(x);

plot(x,y2);

title('曲线2') gtext('余割函数')

结果:

3)程序:x=[1:0.1:10];

y=exp(x+5)+x.^3;

semilogy(x,y);

结果:

4)程序:

x=0:pi/50:2*pi;

y1=sin(x);

y2=cos(x);

figure(1)

plot(x,y1,x,y2);

figure(2)

[a,b]=meshgrid(-3:0.15:3);

c=peaks(a,b);a1=a(1,:);

plot(a1,c),grid on

结果:

5)程序:x=[-3:.05:3];

y1=2*x+5;

y2=x.^2-3*x+1;

figure

subplot(2,1,1)

plot(x,y1);

axis([-3 3 -20 20])

subplot(2,1,2)

plot(x,y2);

axis([-3 3 -20 20])

结果:

班级:08级电信班姓名:李刚学号:222008315222056

实验三:matlab绘图(2)

一、实验目的:

1、了解MATLAB图形功能。

2、掌握通用图形函数,二维三维图形函数的编程方法。

3、运用MATLAB完成课后习题。

二、验内容:

1、按图3.19的方式显示出autumn,bone,cool,hot,hsv,gray,flag,line等颜色板的颜色条形图。

2、有一们研究生,一年中平均每月的费用为生活费190元,资料费33元,电话费45元,购买衣服42元以及其它的费用45元。请以饼图表示出他每月的消费比例,并分离出表示资料费用的切片。请给图中每一块加以标注。

3、画出下列函数的三维曲线和网格曲线。

Z=(x-2)2+(y-1.2)2

4、画出下列函数的曲面及等高曲线。

Z=x2+y2+sin(xy)

5、画出各种大小和形状的球、柱体。

三、验结果:

1)

程序:

y=[2 2 2 2 2];

bar(y1,’y’,y2,’m’,y2,’c’,y4,’r’,y5,’g’)

axis([0,6,0,3])

结果:

2)程序:x=[190 33 45 42 45];

explode=[0 1 0 0 0];

pie3(x,explode)

结果:

3)程序:x=[0:0.01:4];

y=[0:0.01:4];

z=(x-2).^2+(y-1.2).^2;

plot3(x,y,z)

figure(2)

[x1,y1]=meshgrid(-4:0.01:4); z1=(x1-2).^2+(y1-1.2).^2; mesh(x1,y1,z1)

结果:

4)程序:[x,y]=meshgrid(-pi:0.1*pi:pi);

z=x.*x+y.*y+sin(x.*y); c=ones(size(z)); surfc(x,y,z,c) 结果:

5)程序:cylinder,axis square

h=findobj('type','surface');

set(h,'cdata',rand(size(get(h,'cdata')))) title('');

figure(2)

t=0:pi/10:2*pi;

[x,y,z]=cylinder(2+cos(t));

surf(x,y,z),axis square

sphere

axis equal

结果:

班级:08级电信班姓名:李刚学号:222008315222056

实验四:matlab程序设计(1)

一、实验目的:

1、掌握脚本文件和函数文件的基本输入格式。

2、学习并熟练使用一些函数的基本语句。

3、学习怎么样调试程序。

二、实验内容:

1.编写M函数实现:求一个数是不为素数,再编写一个主程,要求通过键盘输入一个整

数,然后再判断是不为素数。

2.编写程序完成从表示字符的向量中删去空格,并求出字符个数。

3.编写M函数统计十进制数什中“0”的个数,然后编写脚本文件,实现统计所有自然数

1~2006中“0”的个数。

4.编写求解方程ax2+bx+c=0的根函数,这里应根据b2-4ac的不同取值分另处理,并输入

几组典型值加以检验。

三、实验结果:

1)M文件:[m,n]=size(x);

if m==1

m=n;

end

h=0;

if(x==1|x==2|x==3)

h=0;

end

for i=2:x-1

a=mod(x,i);

if(a==0)

h=1;break,end

end

switch h

case 1

disp('?a2?ê?ò?????êy');

case 0

disp('?aê?ò?????êy');

end

运行结果:

>> qs(5)

这是一个素数

2)程序:function [y,n]=sel(x)

y=[];

len=length(x);

k=1;

for i=1:len

if x(i)~=' '

z(k)=x(i);

k=k+1;

end

end

y=z

n=length(z);

运行结果:[y,n]=sel('s f d ef efe ffef d')

y =

sfdefefeffefd

y =

sfdefefeffefd

n =13

3)实验程序:sum=0;

for x=1:2006

[m,n]=size(x);

if m==1

m=n;

end

z=1;

i=0;

while(z~=0)

mod0=mod(x,10);

z=floor(x./10);

x=z;

if(mod0==0)

i=i+1;

end

if(z==0),break;end

end

sum=sum+i;

end

sum=sum

运行结果:>> tj

sum =

504

4)程序:function [y1,y2]=sqrt1(a,b,c) M=b.^2-4*(a.*c);

if M>=0

y1=(-b+sqrt(M))./2*a;

y2=(-b-sqrt(M))./2*a;

else

y1=(-b+sqrt(M))./2*a;

y2=(-b-sqrt(M))./2*a;

disp('无实根');

end

运行结果:

>> [y1,y2]=sqrt1(1,2,1)

y1 =

-1

y2 =

-1

5)程序:

function hqx(x)

if(x>=-3&x<-1)

x=-3:.01:3;plot(x,(-x.^2-4*x-3)./2);

elseif(x>=-1&x<1)

x=-3:.01:3;plot(x,(-x.^2+1));

else

x=-3:.01:3;plot(x,(-x.^2+4*x-3)./2);

end

运行结果:hqx(2)

班级:08级电信班姓名:李刚学号:222008315222056

实验五:matlab程序设计(2)

一、实验目的:

1、掌握脚本文件和函数文件的基本输入格式。

2、学习并熟练使用一些函数的基本语句。

3、学习怎么样调试程序。

二、实验内容:

1、利用menu函数输入选择参数ch.当ch=1时,产生[-10,10]之间均匀分布的随机数.当ch=2时,产生[-5,5]之间的均匀分布的随机数;当ch=3时,产生[-1,1]之间均匀分布的随机数;当ch=1时,产生均值为0,方差为1 的正态分布随机数。要求使用switch函数。

2、编写程序设计良好的用户界面,完成输入全班学生某学期6门课的成绩,并按学分2、

3、

2、4、2.5、1分别进行加权平均,计算出第每个学生的加权平均。

3、企业发放的奖金按个人完成的利润提成。分段提成比例K1为:当I≤10万元时K1=10%;当10<I≤20万元时,K1=5%;当20<I≤40万元时,K1=2%;当I>40万元时,I=1%。

4、有一分数序列2/1,3/2,5/3,8/5,13/8,21/13……求前15项的和。

5、有n个人围成一圈,按列号编号。从第一个人开始报数,数到m时该人退出,并且下一个人从1开始报数,求出出圈人的顺序。

三、实验结果:

1 )

M文件:y=menu('ch','1','2','3','4')

switch y

case 1

ch=20*rand(1,8)-10;

case 2

ch=10*rand(1,8)-5;

case 3

ch=rand(1,8);

case 4

ch=randn(1,8);

otherwise disp('error');

end

ch

运行结果:>> menu1

y =

1

ch =

6.2945 8.1158 -

7.4603

8.2675 2.6472 -8.0492 -4.4300 0.9376

2)

M文件:function y=chenji1(n)

i=1;

while(n)

a=input('请依次输入语言,数学,英语,物理,化学,生物成绩;如:[68 72 65 68 35 79]:'); w=[2 3 2 4 2.5 1];

sum=0;w1=0;

for e=1:6

w1=w1+w(e);

end

for j=1:6

sum=sum+a(j).*w(j);

end

y(i)=sum./w1;

i=i+1;

n=n-1;

end

运行结果:y=chenji1(3)

请依次输入语文,数学,英语,物理,化学,生物成绩,如:[68 72 65 68 35 79]:[67 76 76 87 45 98]

请依次输入语文,数学,英语,物理,化学,生物成绩,如:[68 72 65 68 35 79]:[87 76 78 87 85 98]

请依次输入语文,数学,英语,物理,化学,生物成绩,如:[68 72 65 68 35 79]:[87 76 78 87 85 98]

y =

73.9655 83.8966 83.8966

3)

实验程序:

function y=fun408()

I=input('??ê?è?à?èó(?a?yêy£?£o');

if(I<=10) n=0;

elseif(10

elseif(20

else n=3;

end

switch n

case 0

K=I*0.1;

K=10*0.1+(I-10)*0.05;

case 2

K=10*0.1+10*0.05+(I-20)*0.02;

case 3

K=10*0.1+10*0.05+20*0.02+(I-40)*0.01; end

y=K;

结果:>> y=fun408

请输入利润(为正数):20

y =

1.5000

4)

实验程序:function y=fun409()

n=input('请输入求和的项数:');

value=0;

a(1)=2;

b(1)=1;

a(2)=3;

b(2)=2;

sum(1)=a(1)./b(1);

sum(2)=a(2)./b(2);

for i=3:n

a(i)=a(i-2)+a(i-1);

b(i)=b(i-2)+b(i-1);

sum(i)=a(i)./b(i);

end

for j=1:n

value=value+sum(j);

end

y=value;

结果:>> y=fun409()

输入求和的项数:15

y =

24.5701

5)M文件:function y=shaixuan(a,b)

n=a;

x=[1:n];

i=0;m=0;j=1;

while(n>0)

i=i+1;m=m+1;

if(m==b)

k(j)=x(i);j=j+1;n=n-1;

for(v=i:n) x(v)=x(v+1);

相关文档
相关文档 最新文档