注:本系列文章仅仅用于交流学习,杜绝作业抄袭
第一章: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 > 999
disp('请输入一个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 <= 100
grade = 'A';
elseif score >= 80 && score <= 89
grade = 'B';
elseif score >= 70 && score <= 79
grade = 'C';
elseif score >= 60 && score <= 69
grade = 'D';
elseif score >= 0 && score < 60
grade = 'E';
else
disp('请输入有效的百分制成绩(0-100)。');
return; % 终止程序运行
end
fprintf('成绩等级为:%s\n', grade);
switch语句:
% 从键盘输入百分制成绩
score = input('请输入百分制成绩:');
switch true
case score >= 90 && score <= 100
grade = 'A';
case score >= 80 && score <= 89
grade = 'B';
case score >= 70 && score <= 79
grade = 'C';
case score >= 60 && score <= 69
grade = 'D';
case score >= 0 && score < 60
grade = 'E';
otherwise
disp('请输入有效的百分制成绩(0-100)。');
return; % 终止程序运行
end
fprintf('成绩等级为:%s\n', grade);
3、输入20个数,求其中的最大数和最小数。要求分别用循环结构和调用MATLAB的max函数、min函数来实现。
% 假设需要输入的20个数存储在名为 numbers 的向量中
numbers = zeros(1, 20);
disp('请输入20个数字:');
for i = 1:20
numbers(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<=n
f=1/i^2;
s=s+f;
i=i+1;
end
s
向量运算:
n=input('请输入n的值:');
a=1:n;
f=1./(a.^2);
s=sum(f)
式子二:
循环结构:
n=input('请输入n的值:');
s=1;
for a=1:n
f=(2*a)^2/((2*a-1)*(2*a+1));
s=s*f;
end
s
向量运算:
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:n
f=(-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)