close all %关闭打开了的所有图形窗口clc %清屏命令clear %清除工作空间中所有变量%定义时间范围t=[0:pi/10:8*pi];y=sin(t);plot(t,y,'b:square')close allclcclear%定义时间范围t=[0:pi/20:9*pi];grid onhold on %允许在同一坐标系下绘制不同的图形plot(t,sin(t),'r:*')plot(t,cos(t))plot(t,-cos(t),'k')%grid on %在所画出的图形坐标中添加栅格,注意用在plot之后4-1:close allclcclear%定义时间范围t=[0:pi/20:9*pi];hold on %允许在同一坐标系下绘制不同的图形plot(t,sin(t),'r:*')plot(t,cos(t))plot(t,-cos(t),'k')grid on %在所画出的图形坐标中添加栅格,注意用在plot之后hold off %覆盖旧图,自动把栅格去掉,且若要在加入栅格就%必须把grid on加在plot后面plot(t,-sin(t))grid on%主程序exp2_10.mglobal a %声明变量a为全局变量x=1:100;a=3;c=prods(x) %调用子程序prods.m%子程序prods.m% function result=prods(x)% global a% result=a*sum(x);%声明了与主程序一样的全局变量a,以便在子程序中可以%使用主程序中定义的变量答案:15150exmdl2_1.mclearclose allclct=[0:pi/20:5*pi];figure(1)plot(t,out)grid onxlabel('time')ylabel('magnitude')exp2_1.mclc %清屏clear %从内存中清除变量和函数more onecho on%求矩阵与矩阵的乘积,矩阵与向量的乘积A=[5 6 7;9 4 6;4 3 6]B=[3 4 5;5 7 9;7 3 1]C=A*BY=A*Xmore offecho off答案:%求矩阵与矩阵的乘积,矩阵与向量的乘积A=[5 6 7;9 4 6;4 3 6]A =5 6 79 4 64 3 6B=[3 4 5;5 7 9;7 3 1]B =3 4 55 7 97 3 1X=[5 ;7;8]X =578C=A*BC =94 83 8689 82 8769 55 53Y=A*XY =12189more offecho offexp2_2.mclcclearmore onecho on%为便于理解,在程序等执行过程中显示程序的表达式a=16;b=12;c=3;d=4;e=a+b-c*df=e/2k=e\2h=c^3g=e+f+ ...2+1-9aa=sin(g)abs(aa)bb=2+3jcc=conj(bb)rbb=real(bb) log(rbb) sqrt(rbb) exp(rbb) echo off more offa=16;b=12;c=3;d=4;e=a+b-c*de =16f=e/2f =8k=e\2k =0.1250h=c^3h =27g=e+f+ ...2+1-9g =18aa=sin(g)aa =-0.7510abs(aa)ans =0.7510bb=2+3jbb =2.0000 +3.0000i cc=conj(bb)cc =2.0000 -3.0000i rbb=real(bb)rbb =2log(rbb)ans =0.6931sqrt(rbb)ans =1.4142exp(rbb)ans =7.3891echo offans =7.3891exp2_5.m%绘制单位圆clearclose allclc%定义时间范围t=[0:0.01:2*pi];x=sin(t);y=cos(t);plot(x,y)axis([-1.5 1.5 -1.5 1.5])%限定x轴和y轴的显示范围grid onaxis('equal')%axis([xmin,xmax,ymin,ymax])函数来调整图轴的范围:答案:exp2_5_.mclearclose allclct=[0:pi/20:5*pi];plot(t,sin(t),'r:*')axis([0 5*pi -1.5 1.5 ])%给x轴和y轴命名xlabel('t(deg)')ylabel('magnitude')%给图形加标题title('sine wave from zero to 5\pi')%在指定位置创建说明性文字text(pi/2,sin(pi/2),'\bullet\leftarrow The sin(t) at t=2')%图形文字标示命令的使用clearclose allclct=[0:pi/20:5*pi];plot(t,sin(t),'r:*')axis([0 5*pi -1.5 1.5 ])%给x轴和y轴命名xlabel('t(deg)')ylabel('magnitude')%给图形加标题title('sine wave from zero to 5\pi')%在指定位置创建说明性文字text(pi/2,sin(pi/2),'\bullet\leftarrow The sin(t) at t=2') %输入特定的字符%\pi%\alpha%\leftarrow%\rightarrow%\bullet(点号)hold onplot(t,cos(t))%区分图形上不同的曲线legend('sin(t)','cos(t)')%用鼠标在特定位置输入文字gtext('文字标示命令举例') hold offexp2_6.m%图形分割命令的使用clearclose allclct=[0:pi/20:5*pi];subplot(321)plot(t,sin(t))axis([0 16 -1.5 1.5]) xlabel('t(deg)') ylabel('magnitude') grid ontitle('sin(t)') subplot(322)plot(t,-sin(t))axis([0 16 -1.5 1.5]) xlabel('t(deg)') ylabel('magnitude') grid ontitle('-sin(t)') subplot(323)plot(t,cos(t))axis([0 16 -1.5 1.5]) xlabel('t(deg)') ylabel('magnitude') grid ontitle('cos(t)') subplot(324)plot(t,-cos(t))axis([0 16 -1.5 1.5]) xlabel('t(deg)') ylabel('magnitude') grid ontitle('-cos(t)') subplot(325) subplot(326)exp2_7.mclcclear%绘制对应于每个输入x的输出y的高度条形图subplot(221)x=[1 2 3 4 5 6 7 8 9 10];y=[5 6 3 4 8 1 10 3 5 6];bar(x,y)%绘制x1在以y1为中心的区间中分布的个数条形图subplot(222)x1=randn(1,1000);%生成1000个各随机数y1=-3:0.1:3;hist(x1,y1)%绘制y2对应于x2的梯形图subplot(223)x2=0:0.1:10;y2=1./(x2.^3-2.*x2+4);stairs(x2,y2)%绘制y3对应于x3的散点图subplot(224)x3=0:0.1:10;y3=1./(x2.^3-2.*x2+4);stem(x3,y3)exp2_8.mecho off % 不显示程序内容%clear allclearclca=4;b=6disp('暂停,请按任意键继续') % disp指令可以用来显示字符pause % 暂停,直到用户按任意键echo on% 显示程序内容,注意matlab默认是不显示c=a+b% 暂时把控制权交给键盘(在命令窗口中出现k提示符), % 输入return,回车后退出,继续执行下面的语句。
keyboardd=input('Enter the value of d=');%提示用户输入d的值e=a*24+b*8+d*6-cf=e/ddisp('work pause 30 second') % disp指令可以用来显示字符pause(10) %暂停10秒disp(f) % 显示指定变量的结果,而不显示变量名称echo off答案:b =6暂停,请按任意键继续% 显示程序内容,注意matlab默认是不显示c=a+bc =10% 暂时把控制权交给键盘(在命令窗口中出现k提示符), % 输入return,回车后退出,继续执行下面的语句。
keyboardK>> returnd=input('Enter the value of d=');%提示用户输入d的值Enter the value of d=10e=a*24+b*8+d*6-ce =194f=e/df =19.4000disp('work pause 30 second') % disp指令可以用来显示字符work pause 30 secondpause(10) %暂停10秒disp(f) % 显示指定变量的结果,而不显示变量名称19.4000echo offexp2_9.msumhe.m函数% sumhe.mfunction result=sumhe(a,b)% sumhe(a,b) sum the serial of numbers from a tobresult=sum(a:b);主程序exp2_9.ma=input('please input value of a=');b=input('please input value of b=');c=sumhe(a,b)% 在此例中,主程序exp2_9.m设定了两个参数a和b来调用% 子程序sumhe.m(为一个函数文件),% 所以执行主程序时,子程序就会调用主程序传递过来的% a和b值进行计算,再将结果返回主程序。