新浪博客

matlab程序设计举例1

2011-04-12 22:01阅读:



1.有一周期为4p的正弦波上叠加了方差为0.1的正态分布的随机噪声的信号,用循环结构编制一个三点线性滑动平均的程序。(提示:①用0.1*randn(1,n)产生方差为0.1的正态分布的随机噪声;②三点线性滑动平均就是依次取每三个相邻数的平均值作为新的数据,如x1(2)=(x(1)+x(2)+x(3))/3x1(3)=( x(2)+x(3)+x(4))/3……)

程序:

t=0:pi/50:4*pi;
n=length(t);
y=sin(t)+0.1*r
andn(1,n);
ya(1)=y(1);
for i=2:n-1
ya(i)=sum(y(i-1:i+1))/3;
end
ya(n)=y(n);
plot(t,y,'c',t,ya,'r','linewidth',2)

结果:
matlab程序设计举例1
2.编制一个解数论问题的函数文件:取任意整数,若是偶数,则用2除,否则乘31,重复此过程,直到整数变为1

程序:
function c=collatz(n)
% collatz
% Classic “3n+1” Ploblem from number theory
c=n;
while n>1
if rem(n,2)==0
n=n/2;
else
n=3*n+1;
end
c=[c n];
end

调用:
collatz(25)

结果:
ans =
Columns 1 through 20
25 76 38 19 58 29 88 44 22 11 34 17 52 26 13 40 20 10 5 16
Columns 21 through 24
8 4 2 1
3.有一组学生的考试成绩(见表),根据规定,成绩在100分时为满分,成绩在90~99之间时为优秀,成绩在80~89分之间时为良好,成绩在60~79分之间为及格,成绩在60分以下时为不及格,编制一个根据成绩划分等级的程序。
学生姓名











72
83
56
94
100
88
96
68
54
65

程序:(可扩展)
Name=['王','张','刘','李','陈','杨','于','黄','郭','赵'];
Marks=[72,83,56,94,100,88,96,68,54,65];
% 划分区域:满分(100),优秀(90-99),良好(80-89),及格(60-79),不及格(<60)。
n=length(Marks);
for i=1:10
a{i}=89+i;
b{i}=79+i;
c{i}=69+i;
d{i}=59+i;
end;
c=[d,c];
% 根据学生的分数,求出相应的等级。
for i=1:n
switch Marks(i)
case 100 %得分为100时
Rank(i,:)=' 满分';
case a %得分在90~99之间
Rank(i,:)=' 优秀';
case b %得分在80~89之间
Rank(i,:)=' 良好';
case c %得分在60~79之间
Rank(i,:)=' 及格';
otherwise %得分低于60。
Rank(i,:)='不及格';
end
end
% 将学生姓名,得分,级等信息打印出来。
disp(' ')
disp(['学生姓名 ',' 得分 ',' 等级']);
disp('--------------------------')
for i=1:n;
disp([' ',Name(i),' ',num2str(Marks(i)),' ',Rank(i,:)]);
end
运行结果:
学生姓名 得分 等级
--------------------------
72 及格
83 良好
56 不及格
94 优秀
100 满分
88 良好
96 优秀
68 及格
54 不及格
65 及格

4.编写一段程序,能够把输入的摄氏温度转化成华氏温度,也能把华氏温度转换成摄氏温度。
程序:
k=input('选择转换方式(1--摄氏转换为华氏,2--华氏转换为摄氏):');
if k~=1 & k~=2
disp('请指定转换方式')
break
end
tin=input('输入待转变的温度(允许输入数组):');
if k==1
tout=tin*9/5+32; % 摄氏转换为华氏
k1=2;
elseif k==2
tout=(tin-32)*5/9; % 华氏转换为摄氏
k1=1;
end
str=[' degC';' degF'];
disp(['转换前的温度', ' ', '转换后的温度'])
disp([' ',num2str(tin),str(k,:), ' ', num2str(tout),str(k1,:)])


结果:
选择转换方式(1--摄氏转换为华氏,2--华氏转换为摄氏):2
输入待转变的温度(允许输入数组):99
转换前的温度 转换后的温度
99 degF 37.2222 degC

我的更多文章

下载客户端阅读体验更佳

APP专享