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 > 999

disp('请输入一个3位整数。');

else

% 将整数转换为字符数组

num_str = num2str(num);

% 将字符数组反转

reversed_str = fliplr(num_str);

% 将反向后的字符数组转换为数字并输出

reversed_num = str2double(reversed_str);

fprintf('反向输出为:%d\n', reversed_num);

end

MATLAB程序设计教程 第3版 第三章实验指导、思考练习答案(个人版)_第1张图片

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);

MATLAB程序设计教程 第3版 第三章实验指导、思考练习答案(个人版)_第2张图片

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);

MATLAB程序设计教程 第3版 第三章实验指导、思考练习答案(个人版)_第3张图片

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);

MATLAB程序设计教程 第3版 第三章实验指导、思考练习答案(个人版)_第4张图片

4、

MATLAB程序设计教程 第3版 第三章实验指导、思考练习答案(个人版)_第5张图片

当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)

MATLAB程序设计教程 第3版 第三章实验指导、思考练习答案(个人版)_第6张图片

5、

MATLAB程序设计教程 第3版 第三章实验指导、思考练习答案(个人版)_第7张图片

式子一:

循环结构:

n=input('请输入n的值:');

i=1;

s=0;

while i<=n

f=1/i^2;

s=s+f;

i=i+1;

end

s

MATLAB程序设计教程 第3版 第三章实验指导、思考练习答案(个人版)_第8张图片

向量运算:

n=input('请输入n的值:');

a=1:n;

f=1./(a.^2);

s=sum(f)

MATLAB程序设计教程 第3版 第三章实验指导、思考练习答案(个人版)_第9张图片

式子二:

循环结构:

n=input('请输入n的值:');

s=1;

for a=1:n

f=(2*a)^2/((2*a-1)*(2*a+1));

s=s*f;

end

s

MATLAB程序设计教程 第3版 第三章实验指导、思考练习答案(个人版)_第10张图片

向量运算:

n=input('请输入n的值:');

a=1:n;

f=(2*a).^2./((2*a-1).*(2*a+1));

s=prod(f)

MATLAB程序设计教程 第3版 第三章实验指导、思考练习答案(个人版)_第11张图片

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))

MATLAB程序设计教程 第3版 第三章实验指导、思考练习答案(个人版)_第12张图片

8、

img

函数:

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)

MATLAB程序设计教程 第3版 第三章实验指导、思考练习答案(个人版)_第13张图片

思考练习:

一、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)

你可能感兴趣的:(日报专栏,matlab,算法,数据结构,MATLAB)