当前位置:文档之家› Matlab程序设计实验报告

Matlab程序设计实验报告

实验七Matlab 程序设计
实验目的:
1、掌握建立和执行M 文件的方法;
2、掌握实现选择结构的方法;
3、掌握实现循环结构的方法。

实验内容:
1. 编写用 5 次多项式拟合函数y=sin(x), x [0, 2 ]的脚本M 文件,要求绘图观察拟合的效果。

function shiyan1
x=0:0.5:2*pi
y=sin(x)
p=polyfit(x,y,5)
x1=0:0.2:2*pi
y1=polyval(p,x1)
plot(x,y, 'b' ,x1,y1, '*r'
x =
Columns 1 through 9
0 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000 3.5000 4.0000
Columns 10 through 13
4.5000
5.0000 5.5000
6.0000
y =
Columns 1 through 9
0 0.4794 0.8415 0.9975 0.9093 0.5985 0.1411 -0.3508 -0.7568
Columns 10 through 13
-0.9775 -0.9589 -0.7055 -0.2794
p =
-0.0056 0.0881 -0.3967 0.2671 0.8902 0.0029
x1 =
Columns 1 through 10
0 0.2000 0.4000 0.6000 0.8000 1.0000 1.2000 1.4000 1.6000
1.8000
Columns 11 through 20
2. 2.2000 2.4000 2.6000 2.8000
3.0000 3.2000 3.4000 3.6000
1.8001
Columns 21 through 30
4.0 4.2000 4.4000 4.6000 4.8000
5.0000 5.2000 5.4000 5.6000
5.8000
Columns 31 through 32
6.0 6.2000
y1 =
Columns 1 through 10
0.29 0.1886 0.3786 0.5585 0.7172 0.8461 0.9391 0.9926 1.0048
0.9761
Columns 11 through 20
0.9083 0.8048 0.6701 0.5098 0.3301 0.1381 -0.0590 -0.2538 -0.4389
-0.6073
Columns 21 through 30
-0.7524 -0.8685 -0.9505 -0.9949 -0.9991 -0.9626 -0.8863 -0.7732 -0.6288 -0.4606
Columns 31 through 32
-0.2792 -0.0978 2. 从键盘输入一个 4 位整数,按如下规则加密后输出。

加密规则:每位数字都加上7,然后用和除以10 的余数取代该数字;再把第一位与第三位交换,第二位与第四位交换。

function shiyan2
n=input( 'please input four integers:' )
n=n+7
n=n %10
a=n(1,1)
n(1,1)=n(1,3)
n(1,3)=a
b=n(1,2)
n(1,2)=n(1,4)
n(1,4)=b
please input four integers:[1 2 3 4]
n =
1 2 3 4
n =
8 9 10 11
n =
8 9 10 11
a =
8
n =
10 9 10 11
n =
10 9 8 11
b =
9
n =
10 11 8 11
n =
10 11 8 9
3.输入一个百分制成绩,要求输出成绩等级A、B、C、D、E,其中90~100 分为A,80~89 分为B,70~79
分为C,60~69 分为D,60 分以下为E。

function shiyan3
clear;
clc;
n=input( 'please input a number:' )
n=ceil(n/10)
switch n
case {10,9}
disp( 'A' )
case 8
disp( 'B' )
case 7
...
disp( 'C' )
case 6
disp( 'D' )
case {5,4,3,2,1}
disp( 'E' )
otherwise
disp( 'default' )
end
please input a number:89
n =
89
n =
9
A
4. 硅谷公司员工的工资计算方法如下:
(1)工作时数超过120 小时者,超过部分加发15%;
(2)工作时数低于60 小时者,扣发700 元;
(3)其余按每小时84 元计发。

试编程按输入的工号和该号员工的工时数,计算应发工资。

function shiyan4
clear;
clc;
x=0;
m=input( 'please input your number:' )
n=input( 'please input your working hours:' ) if n<60
x=n*84-700;
elseif n>120
x=n*84+(n-120)*84*1.15;
else
x=n*84;
end
x
please input your number:38
...
m =
38
please input your working hours:80
n =
80
x =
6720
4.设计程序,完成两位数的加、减、乘、除四则运算。

即:输入两个两位随机整数,再输入一个运算
符号,做相应的运算,并显示相应的结果。

function shiyan5
clear;
clc;
m=input( 'please input a number:' )
n=input( 'please input another number:' )
x=input( 'please input a symbol:' , 's' )
switch x
case '+'
q=m+n;
case '-'
q=m_n;
case '*'
q=m*n;
case '/'
q=m/n;
end
q
please input a number:12
m =
12
please input another number:1
n =
1
please input a symbol:+
x =
+
q =
13
5.建立5× 6 矩阵,要求输出矩阵的第n 行元素。

当n 值超过矩阵的行数时,自动转为输出矩阵的最后
一行元素,并给出出错信息。

function shiyan6
clear;
clc;
a=[1 2 3 4 5 6;2 3 4 5 6 7;3 4 5 6 7 8;4 5 6 7 8 9;24 45 34 76 23 67];
n=input( 'please input a number:' )
if n<=5
b=a(n,:);
elseif n>5
b=a(5,:);
disp( 'error' );
end
b
please input a number:4
n =
4
b =
4 5 6 7 8 9
please input a number:82
n =
82
error
b =
24 45 34 76 23 67
6.产生20 个两位随机整数,输出其中小于平均数的偶数。

function shiyan7
clear;
clc;
i=1;c=[];i0=1;
a=fix(rand(1,20)*100)
b=mean(a)
for i=1:20
if (a(i)<b)&&(rem(a(i),2)==0)
c(i0)=a(i);
i0=i0+1;
end
i=i+1;
end
c
a =
Columns 1 through 16
32 89 31 25 43 84 18 50 45 32 38 88 76 88 45 79
Columns 17 through 20
13 6 37 37
b =
47.8000
c =
32 18 32 38 6
>>。

相关主题