本文主要是介绍MATLAB程序设计教程 第3版 第三章实验指导、思考练习答案(个人版),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
注:本系列文章仅仅用于交流学习,杜绝作业抄袭
第一章:MATLAB程序设计教程 第3版 第一章实验指导、思考练习答案(个人版)-CSDN博客
第二章:MATLAB程序设计教程 第3版 第二章实验指导、思考练习答案(个人版)-CSDN博客
第三章:MATLAB程序设计教程 第3版 第三章实验指导、思考练习答案(个人版)-CSDN博客
第四章:MATLAB程序设计教程 第3版 第四章实验指导、思考练习答案(个人版)-CSDN博客
第五章:MATLAB程序设计教程 第3版 第五章实验指导、思考练习答案(个人版)-CSDN博客
第六章:MATLAB程序设计教程 第3版 第六章实验指导、思考练习答案(个人版)-CSDN博客
实验内容:
1、从键盘输入一个3位整数,将它反向输出。如输入639,输出为936。
% 从键盘输入一个3位整数num = input('请输入一个3位整数:');if num < 100 || num > 999disp('请输入一个3位整数。');else% 将整数转换为字符数组num_str = num2str(num);% 将字符数组反转reversed_str = fliplr(num_str);% 将反向后的字符数组转换为数字并输出reversed_num = str2double(reversed_str);fprintf('反向输出为:%d\n', reversed_num);end
2、输入一个百分制成绩,要求输出成绩等级A,B,C,D,E。其中90~100分为A,80~89分为B,70~79分为C,60~69分为D,60分以下为E。要求:
if语句:
% 从键盘输入百分制成绩score = input('请输入百分制成绩:');if score >= 90 && score <= 100grade = 'A';elseif score >= 80 && score <= 89grade = 'B';elseif score >= 70 && score <= 79grade = 'C';elseif score >= 60 && score <= 69grade = 'D';elseif score >= 0 && score < 60grade = 'E';elsedisp('请输入有效的百分制成绩(0-100)。');return; % 终止程序运行endfprintf('成绩等级为:%s\n', grade);
switch语句:
% 从键盘输入百分制成绩score = input('请输入百分制成绩:');switch truecase score >= 90 && score <= 100grade = 'A';case score >= 80 && score <= 89grade = 'B';case score >= 70 && score <= 79grade = 'C';case score >= 60 && score <= 69grade = 'D';case score >= 0 && score < 60grade = 'E';otherwisedisp('请输入有效的百分制成绩(0-100)。');return; % 终止程序运行endfprintf('成绩等级为:%s\n', grade);
3、输入20个数,求其中的最大数和最小数。要求分别用循环结构和调用MATLAB的max函数、min函数来实现。
% 假设需要输入的20个数存储在名为 numbers 的向量中numbers = zeros(1, 20);disp('请输入20个数字:');for i = 1:20numbers(i) = input('');end% 利用 max() 和 min() 函数获取最大值和最小值max_number = max(numbers);min_number = min(numbers);fprintf('使用max函数得到的最大数:%d\n', max_number);fprintf('使用min函数得到的最小数:%d\n', min_number);
4、
当a取-3.0,-2.9,-2.8,…,2.8,2.9,3.0时,求各点的函数值。要求分别用顺序结构和循环结构实现。
a=[-3.0:0.1:3.0];y=(exp(0.3*a)-exp(-0.3*a))/2.*sin(a+0.3)+log((0.3+a)/2)
5、
式子一:
循环结构:
n=input('请输入n的值:');i=1;s=0;while i<=nf=1/i^2;s=s+f;i=i+1;ends
向量运算:
n=input('请输入n的值:');a=1:n;f=1./(a.^2);s=sum(f)
式子二:
循环结构:
n=input('请输入n的值:');s=1;for a=1:nf=(2*a)^2/((2*a-1)*(2*a+1));s=s*f;ends
向量运算:
n=input('请输入n的值:');a=1:n;f=(2*a).^2./((2*a-1).*(2*a+1));s=prod(f)
6、建立5×6矩阵,要求输出矩阵第n行元素。当n值超过矩阵的行数时,自动转为输出矩阵最后一行元素,并给出出错信息。
a=rand(5,6);
n=input('请输入您要输出矩阵的第几行:');
if n>5
disp('超出了矩阵的行数,矩阵最后一行为:')
a(5,:)
else
disp(['矩阵的第',num2str(n),'行为:'])
a(n,:)
end
7、
1):
function f1=jay17(n)
f1=n+10*log(n*n+5);
end>>jay17(40)/(jay17(30)+jay17(20))
2):
function f2=jay17(n)
i=1:n;
m=i.*(i+1);
f2=sum(m);
end>> y=jay17(40)/(jay17(30)+jay17(20))
8、
函数:
function f=xt4_10(m,n)if n<1 f=0;else f=n^m+xt4_10(m,n-1);end
命令行窗口调用:
>>xt4_10(1,100)+xt4_10(2,50)+xt4_10(-1,10)
思考练习:
一、1.
M文件
一、2.
while…end break
一、3.
function开头的一行为引导行 形式 形参 实际 实参
一、4.
语法 逻辑 调试函数 调试工具
一、5.
5
一、6.
2 2
一、7.
25
二、1.
用于MATLAB语言编写的程序,称为M文件。
建立M文件:1、左上角直接新建。2、edit 命令。3、open 命令(类似edit)4、在历史窗口选中命令,右键创建脚本。
执行M文件:1、命令行输入文件名字,比如jay17.m这个文件可以通过输入jay17来执行。2、上方运行按钮。
二、2.
N=[1,2,3,4,5];
(1):2*N
(2):N/2
(3):1./N
(4):1./N./N
二、3.
A=fix(10+89*rand(1,20));
sum=0;
for i=1:20
sum=sum+A(i);
end
B=A(find(A<(sum/20)));
C=B(find(rem(B,2)==0));
disp(C);
二、4.
循环结构:
n=input('请输入n的值:');
s=0;
for a=1:nf=(-1)^(a-1)/(2*a-1);
f=1/(4^a);s=s+f;
end
s
向量运算:
n=input('请输入n的值:');
a=1:n;
f=(-1).^(a-1)./(2.*a-1);
f=1./(4.^a);
s=sum(f)
二、5.
函数文件:
function [f1,f2]=jay17(x1,x2)
f1=x1*x2;
f2=x1.*x2;
命令行文件:
a=input('请输入一个矩阵:');b=input('请再输入一个矩阵:(注意:两矩阵要可以相乘)');[f1,f2]=jay17(a,b);disp(f1)disp(f2)
这篇关于MATLAB程序设计教程 第3版 第三章实验指导、思考练习答案(个人版)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!