下载此文档

Matlab实验三答案.pdf


文档分类:高等教育 | 页数:约17页 举报非法文档有奖
1/17
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/17 下载此文档
文档列表 文档介绍
该【Matlab实验三答案 】是由【花开花落】上传分享,文档一共【17】页,该文档可以免费在线阅读,需要了解更多关于【Matlab实验三答案 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。:.
实验三MATLAB语言的程序设计
一、实验目的:
1、熟悉MATLAB程序编辑与设计环境
2、掌握各种编程语句语法规则及程序设计方法
3、函数文件的编写和设计
4、了解和熟悉跨空间变量传递和赋值
二、实验基本知识:
1、程序流程控制语句
for循环结构
语法:fori=初值:增量:终值
语句1
……
语句n
end
说明:=初值:终值,则增量为1。
、增量、终值可正可负,可以是整数,也可以是小数,只须符合数学逻辑。
while循环结构
语法:while逻辑表达式
循环体语句
end
说明:1、whiIe结构依据逻辑表达式的值判断是否执行循环体语勾。若表达式的值为真,执行循环体
语句一次、在反复执行时,每次都要进行判断。若表达式的值为假,则程序执行end之后的
语句。
2、为了避免因逻辑上的失误,而陷入死循环,建议在循环体语句的适当位置加break语句、
以便程序能正常执行。(执行循环体的次数不确定;每一次执行循环体后,一定会改变while
后面所跟关系式的值。)
3、while循环也可以嵌套、其结构如下:
while逻辑表达式1
循环体语句1
while逻辑表达式2
循环体语句2
end
循环体语句3
end
if-else-end分支结构
if表达式1
语句1
elseif表达式2(可选)
语句2:.
else(可选)
语句3
end
end
说明:结构是一个条件分支语句,若满足表达式的条件,则往下执行;若不满足,则跳出if
结构。
,这两条语句可依据具体情况取舍。
:每一个if都对应一个end,即有几个if,记就应有几个end。
switch-case结构
语法:switch表达式
case常量表达式1
语句组1
case常量表达式2
语句组2
……
otherwise
语句组n
end
说明:,如数字、字符串等。
,就执行这个case后面的语句组如
果所有的常量表达式的值都与这个表达式的值不相等时,则执行otherwise后的执行语句。
程序流程控制指令
break、return、pause
2、函数文件的结构和编写方法
函数只能在函数体内对变量进行操作,也就是只能访问函数本身工作空间中的变量。
M函数文件的结构
(1)函数定义行(function)
(2)H1行(函数帮助文本的第一行)
(3)函数帮助文本
(4)函数体
(5)注释
函数文件编写后,保存时,其文件名必须与函数名相同。注意:函数名不要与MATLAB
自身的函数命令相同。
三、实验内容:
2、用for循环语句实现求1~100的和
编程:
sum=0;
fori=1:100
sum=sum+i;
end
sum:.
运行结果:
>>ljia
sum=
5050
3、用for循环语句实现编写一个求阶乘的函数文件。
编程:
functiony=jcheng(n)
y=1;
fori=1:n
y=y*i;
end
y
运行结果:
假设n=5
>>jcheng(5)
y=
120
ans=
120
4、找到一个n!>10100的值(利用上题的阶乘函数文件)
编程:
i=1;
while(1)
y=jcheng(i);
ify>10^100
break;
end
i=i+1;
end
i
运行结果:
>>zhaon
y=
:.
1
y=
2
y=
6
y=
24
y=
120
y=
720
y=
5040
y=
40320
y=
362880
y=:.
3628800
y=
39916800
y=
479001600
y=
+009
y=
+010
y=
+012
y=
+013
y=
+014
y=
+015
:.
y=
+017
y=
+018
y=
+019
y=
+021
y=
+022
y=
+023
y=
+025
y=
+026
y=
+028
:.
y=
+029
y=
+030
y=
+032
y=
+033
y=
+035
y=
+036
y=
+038
y=
+040
y=
+041:.
y=
+043
y=
+044
y=
+046
y=
+047
y=
+049
y=
+051
y=
+052
y=
+054
y=
:.
+056
y=
+057
y=
+059
y=
+061
y=
+062
y=
+064
y=
+066
y=
+067
y=
+069
y=:.
+071
y=
+073
y=
+074
y=
+076
y=
+078
y=
+080
y=
+081
y=
+083
y=
+085
:.
y=
+087
y=
+089
y=
+090
y=
+092
y=
+094
y=
+096
y=
+098
y=
+100
i=
70
:.
5、编写一个乘法表(9×9)
编程:
fori=1:9
A=[];
forj=1:i;
A=[A,sprintf('%dx%d=%d',j,i,i*j)];
end
disp(A)
end
运行结果:
>>cfb
1x1=1
1x2=22x2=4
1x3=32x3=63x3=9
1x4=42x4=83x4=124x4=16
1x5=52x5=103x5=154x5=205x5=25
1x6=62x6=123x6=184x6=245x6=306x6=36
1x7=72x7=143x7=214x7=285x7=356x7=427x7=49
1x8=82x8=163x8=244x8=325x8=406x8=487x8=568x8=64
1x9=92x9=183x9=274x9=365x9=456x9=547x9=638x9=729x9=81
6、判断y向量的元素属于3n、3n+1或3n+2,设y=[3,5,7,9,11,16]。
编程:
假设:将3n放进数组A,将3n+1放进数组B,将3n+2放进数组C。
y=[35791116;];
A=[];
B=[];
C=[];
j=1;k=1;m=1;
fori=1:6
x=rem(y(i),3);
ifx==0
A(j)=y(i);j=j+1;
end
ifx==1
B(k)=y(i);k=k+1;
end
ifx==2
C(m)=y(i);m=m+1;
end
end
disp(A)
disp(B)
disp(C):.
运行结果:
>>yush
39
716
511
n
AB
7、已知一维数组A=[2,4,5,8,10]、B=[4,9,6,7,4],用for循环语句实现ini1。求
i1
和函数可用sum().
编程:
A=[245810;];
B=[49674;];
C=[];
y=0;
fori=1:5
C(i)=(A(i)*B(5-i+1));
y=y+C(i);
end
y
运行结果:
>>timu7
y=
178
8、(1)编写求解一维数组平均值的函数文件。
(2)编写求解二维数组平均值的函数文件。
编程1:
functiony=ywjz(A)
x=0;
n=numel(A);
fori=1:n
x=x+A(i);
end
v=x/n;
运行结果:
>>y=ywjz([12345])
y=:.
3
编程2:
functiony=ewjz(A)
x=0;
n=numel(A);
fori=1:n
x=x+A(i);
end
y=x/n;
运行结果:
>>y=ewjz([23;45;67;])
y=
调用验证:
A=[133;557;];
y=ewjz(A);
y
>>aa
y=
4
9、编写验证魔方矩阵的函数文件,输出要求如下:
(1)如果输入矩阵的维数小于3,输出显示’error’
(2)如果输入矩阵的不是方阵,输出显示’thesizeofmatrixXmustbeN-by-Nmatrix’
(3)显示行、列和及其对角线求和后的值,并判断其和是否相同,若不同,显示‘No’,
相同显示‘Yes’
编程:
functionyanzh(x)
[r,c]=size(x);
ifr~=c
disp('thesizeofmatrixXmustbeN-by-Nmatrix')
elseifr<3
disp('eroor')
end
end
S=[sum(x,1),sum(x,2)',sum(diag(x))',sum(diag(rot90(x)))'];
ifS(1)==S(2)&S(2)==S(3)&S(3)==S(4)&S(1)==S(4)
disp('yes')
else:.
disp('no')
end
验证运行:
>>yanzh([816;357;492;])
yes
>>yanzh([816;357;])
thesizeofmatrixXmustbeN-by-Nmatrix
no
>>yanzh([86;35;])
eroor
no
>>yanzh([826;357;492;])
no
实验五循环结构程序设计
.
实验内容
(1)编写程序实现求两矩阵A*B,A.*B.
A*B
>>A=input('输入矩阵A:');
B=input('输入矩阵B:');
C=zeros(size(A,1),size(B,2));
forii=1:size(A,1)
forjj=1:size(B,2)
fork=1:size(A,2)
C(ii,jj)=C(ii,jj)+A(ii,k)*B(k,jj);
end
end
end
C
输入矩阵A:[12;34]
输入矩阵B:[56;78]
C=
:.
1922
4350
A.*B
>>A=input('请输入矩阵A:');
B=input('请输入矩阵B:');
ifsize(A)==size(B)
[m,n]=size(A);
fori=1:m
forj=1:n
C(i,j)=A(i,j)*B(i,j);
end
end
disp('输出A.*B:')
C
else
disp('无效')
end
请输入矩阵A:[123]
请输入矩阵B:[456]
输出A.*B:
C=
41018
(2)编写程序实现求矩阵的转置。
>>A=input('请输入矩阵A:');
[m,n]=size(A);
B=zeros(n,m);
fori=1:m;
forj=1:n;
B(i,j)=A(j,i);
end
end
disp(B)
请输入矩阵A:[123;456;789]
147
258
369:.
小结实验心得体会
通过本次实验,我慢慢理解了循环控制结构的执行过程,掌握了一些循环结
构程序设计方法,但还不是很熟练。我了解了一些MATLAB的编程方法和循环结
构程序设计方法,但都不是特别的熟练,都有待加强。

Matlab实验三答案 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数17
  • 收藏数0 收藏
  • 顶次数0
  • 上传人花开花落
  • 文件大小296 KB
  • 时间2023-03-18