t=A(1,n);
A(1,n)=A(1,n+1);
A(1,n+1)=t;
temp=1;
end
end
end
A
A=
Columns1through4
Columns5through8
Columns9through10
实验9 MATLAB序设计
(2)
1.编写一个M函数文件计算下列级数的和:
x和n的值由input指令给出。
functionf=test
x=input('Inputthex:
\n');
n=input('Inputthen:
\n');
j=1;
f2=0;
fori=1:
n;
j=1;
fork=1:
i;
j=j*k;
f1=x^i/j;
end
f2=f2+f1;
end
f=f2+1;
>>test
Inputthex:
12
Inputthen:
12
ans=
+04
2.编制m文件,等待键盘输入,输入密码123,密码正确,显示输入密码正确,程序结束;否则提示,重新输入。
functiontest
n=0;
k=0;
n=input('请输入密码(整数)\n');
while(k==0)
ifn==123
disp('密码正确')
k=1;
else
k=0;
n=input('密码错误,请重新输入密码(整数)\n');
end
end
>>test
请输入密码(整数)
124
密码错误,请重新输入密码(整数)
124
密码错误,请重新输入密码(整数)
123
输入正确
3.编制m文件,输入n(正整数),显示所有小于n的质数。
functionleap=panduan(n)
leap=1;
fori=2:
sqrt(n+1)
ifmod(n,i)==0
leap=0;
break;
end
end
functionzhishu(n)
form=2:
n
ifpanduan(m)==1
disp(m);
end
end
>>zhishu(15)
2
3
5
7
11
13
4.数组[1:
99]中素数(即质数)元素的和
functionleap=panduan(n)
leap=1;
fori=2:
sqrt(n+1)
ifmod(n,i)==0
leap=0;
break;
end
end
functionsum1
k=0;
form=1:
99
ifpanduan(m)==1
k=k+m;
end
end
k
>>sum1
k=
1061
5.从键盘输入若干个数,当输入0时结束输入,求这些数的平均值以及平方和。
functioncal
s=0;
n=0;
s2=0;
temp=input('');
while(temp~=0)
s=s+temp;
s2=s2+temp.^2;
n=n+1;
temp=input('');
end
s./n
s2
cal
1
2
3
4
5
6
7
8
9
0
ans=
5
s2=
285
实验10 MATLAB数据文件I/O
(1)
1.教材《MATLAB基础与实例进阶》页,思考与练习2操作题
(1)-
(2)
(1)将工作目录下的后缀为‘.dat’的文件更改为‘.bin'作为后缀。
filename1='';
fid1=fopen(filename1,'r');
a=fread(fid1)
filename2='';
fid2=fopen(filename2,'r');
fwrite(fid2,a);
b=fread(fid2)
(2)使用MATLAB导入一个WAVE格式的音频文件,并比较与waveread函数读取音频文件的差异。
用waveread函数读取音频文件时:
[y,fs,nbits]=wavread(file),file指定音频文件名,y是音频数据。
另外该语句还能够返回该音频文件的采样率fs,和采样位数nbits,而使用MATLAB导入WAVE格式的音频文件,是不能控制音频文件的采样率,不能够精确调整。
实验11 MATLAB数据文件I/O
(2)
1.教材《MATLAB基础与实例进阶》页,思考与练习2操作题(3)-(4)
(3)读取例4-8中最后两列数据。
fid=fopen('','w');
alldata=reshape([1:
20],4,5);
fwrite(fid,alldata);
fid=fopen('');
fseek(fid,12,'bof');
last_two=fread(fid,[4,2])
fclose(fid);
(4)使用textread函数读出例4-12中的所有浮点数,要求小数点后只有一位数。
clc;clearall;closeall;
[names,rest]=textread('','%s%[^\n]','delimiter',',');
a1=str2num(rest{1});
a2=str2num(rest{2});
a3=str2num(rest{3});
a4=str2num(rest{4});
b=[a1(3),a2(3),a3(3),a4(3)];
fprintf('%4.1f\n',b);
实验12 高级图形用户界面设计
(1)
1.教材《MATLAB基础与实例进阶》页,思考与练习2操作题
(1)-
(2)
(1)建立一个图形窗口,使之背景颜色为红色,并在窗口上保留原有的菜单项,而且在按下鼠标器的左键之后显示Left Button Pressed字样。
h0=figure('Color',[1,0,0],'Name','图形窗口','Numbertitle','off','WindowButtonDownFcn','text,,''LeftButtonPressed'')','toolbar','none');
(2)利用图形对象绘制下列曲线,要求先用默认属性创建线条对象,再通过句柄操作改变曲线颜色、线型和线宽,并利用文本对象给曲线添加标注。
clc;clearall;closeall;
x1=0:
.001:
1;
y1=(1+x1.^2)/(1+x1.^4);
subplot(311)
hline1=plot(x1,y1)
x2=0:
pi/100:
2*pi;
y2=3*x2+sin(x2)-exp(x2);
subplot(312)
hline2=plot(x2,y2)
x3=-1000:
1:
1000;
y3=log(x3+sqrt(1+x3.^2))/2;
subplot(313)
hline3=plot(x3,y3)
set(hline1,'color','r','linestyle','-','linewidth',;
set(hline2,'color','g','linestyle','+','linewidth',;
set(hline3,'color','b','linestyle','.','linewidth',;
gtext('y=(1+x^2)/(1+x^4);');
gtext('y=3*x+sin(x)-exp(x)');
gtext('y=log(x+sqrt(1+x^2))/2');
实验13 高级图形用户界面设计
(2)
1.教材《MATLAB基础与实例进阶》页,思考与练习2操作题(3)-(4)
(3)在一个图形窗口中创建两坐标轴用以显示不同图形,并创建快捷菜单以改变曲线颜色
clc;clearall;closeall;
h0=figure('toolbar','none','menubar','none','position',[380200500350],...
'name','控件的综合应用');%创建图形窗口
h_axes1=axes('Position',[],'box','on');%创建坐标轴
h_axes2=axes('Position',[],'box','on');%创建坐标轴
%在第一个坐标轴上画图
t=0:
:
6*pi;
yy=cos(t);
b=1/2/pi;
h_line=plot(h_axes1,t,yy,'LineWidth',2);
axis([20]);
%在第二个坐标轴上画图
t=0:
:
6*pi;
yy=sin(t);
b=1/2/pi;
h_line2=plot(h_axes2,t,yy,'LineWidth',2);
axis([20]);
h_menu1=uimenu('label','颜色1');%创建菜单
h_submenu11=uimenu(h_menu1,'la