matlab上机作业

更新时间:2024-03-11 10:05:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第四次 上机作业

1、 从键盘输入一个4位整数,按照如下规则加密后输出。加密规则:每位数字

都加上7,然后用和除以10的余数取代该数字;再把第一位与第三位交换,第二位与第四位交换。 Clear X=ones(1,4);

X(1)=input(’输入第一位:‘); X(2)=input(’输入第二位:‘); X(3)=input(’输入第三位:‘); X(4)=input(’输入第四位:‘); X=rem(7+x,10);

Y=1000.*x(3)+100.*x(4)+10.*x(1)+x(2)

2、 分别用if 和switch语句实现以下计算,其中a、b、c的值从键盘输入。

??ax2?bx?c,?y??asincb?x,?c?lnb?,x?0.5?x?1.51.5?x?3.5 3.5?x?5.5a=input(‘请输入a:’); b=input(‘请输入b:’); c=input(‘请输入c:’); If(x>=0.5&&x<=1.5) y=a.*x^2+b.*x+c Elseif(x>=1.5&&x<=3.5) y=a.*(sin(b))^c+x

Elseif(x>=3.5&&x<=5.5) y=log(abs(b+c./x)) end

a=input(‘请输入a:’); b=input(‘请输入b:’); c=input(‘请输入c:’); Switch x

case(x>=0.5&&x<=1.5) y=a.*x^2+b.*x+c case(x>=1.5&&x<=3.5) y=a.*(sin(b))^c+x case(x>=3.5&&x<=5.5) y=log(abs(b+c./x)) end

3、 产生20个两位随机整数,输出其中小于平均值的偶数。 Clear al ;close all ;clc; X=fix(rand(1,20)*89)+10;

Disp([‘20个随机数是:’,num2str(x)]); X1=mean(x);

Disp([‘平均值为:’,num2str(x1)]); N=find(rem(x,2)==0&x

Disp([‘小于平均值的偶数是:’,num2str(x(n))]);

4、 输入20个数,求其中最大数和最小数。要求分别用循环结构和调用Matlab

的max函数、min函数来实现。 Clear all ;close all ;clc;

A=input(‘请输入20个数的一个行向量:’); a=A(1); b=A(1); For m=A Ifa>=m a=m; Else if b<=m b=m; End End

Disp([‘最小的数是:’,num2str(a)]) Disp([‘最大的数是:’,num2str(a)])

5、 已知:s?1?2?22?23???263 分别用循环结构和调用Matlab的sum函数

求s的值。

Clear all ;close all ;clc; S=0; For a=0:63 C=2^a S=s+c; End

Disp([‘2的0次方到63次方的和是:’,num2str(s)])

6、 当n分别取100、1000、10000时,求下列各式的值。

1111?????(?1)n?1??(?ln2) 234n111?(2) 1?????(?)

357411111(3) ?????n??(?)

4166434(1) 1?要求分别用循环结构和向量运算(使用sum或prod函数)来实现。

Clear all ;close all ;clc; Sum1=0;%当n取100时 For n= 1:100 X=(-1)^(n+1)*(1/n); Sum1=sum1+x; End

Disp([‘当n取1000时:sum=’,num2str(sum2)] Sum2=0;%当n取1000时 For n= 1:1000 X=(-1)^(n+1)*(1/n); Sum2=sum2+x; End

Disp([‘当n取10000时:sum=’,num3str(sum3)] Sum2=0;%当n取10000时 For n= 1:10000 X=(-1)^(n+1)*(1/n); Sum3=sum3+x; End

7、 编写一个函数文件,求小于任意自然数n的Fibnacci数列各项。Fibnacci数

列定义如下:

?f1?1,??f2?1,?f?f?f,n?1n?2?nn?1n?2

n?2

Function f=func_fibnacci(n)

%FIBNACCI斐波那契(Finacci)数列 %f=func_fibnacci(n),

%Written by wangchngyou@shandongUniversity at wcihai,2011 If n==1 n==2 F=1; Else

F=func_fibnacci(n-1)+func_fibnacci(n-2); end

8、 编写一个函数文件,用于求两个矩阵的乘积和点乘,然后在命令文件中调用

该函数。

Clear all ;close all ;clc; A=input(‘请输入一个矩阵:’) B=input(‘请输入一个矩阵:’) [f1,f2]=func_Matrixprod(a,b); Disp(‘两矩阵乘积运算结果为:’) Disp(fi)

Disp(‘两矩阵点积运算结果为:’) Disp(f2)

9、 先用函数的递归调用定义一个函数文件求?im,然后调用该函数求

i?1n

?k??kk?1k?1100502??1。 k?1k10

Function sum=func_Sigmasum(n,m) %SIGAMASUM 西格玛求和 %sum=func_SigmaSuum(n,m)

%written by wangchenyou@shangdong University at weihai 2011 Ifn<=1 Sum=0; Else

Sum=n^m+func_sigmasum(n-1,m); end

10、 写出下列程序的输出结果。 (1) s=0;

a=[12,13,14;15,16,17;18,19,20;21,22,23]; for k=a for j=1:4 if rem(k(j),2)~=0 s=s+k(j); end end end s

(2)命令文件exe.m: global x x=1:2:5;y=2:2:6;

exsub(y); x y

函数文件sub.m: function fun=sub(z) global x z=3*x; x=x+z;

答: 1.s=108

2. X= 4 12 20 Y=2 4 6

本文来源:https://www.bwwdw.com/article/4jz8.html

Top