当前位置:   article > 正文

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

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

img

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);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33

img

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);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37

img

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);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

img

4、

img

当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)
  • 1
  • 2
  • 3

img

5、

img

式子一:

循环结构:

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

i=1;

s=0;

while i<=n

f=1/i^2;

s=s+f;

i=i+1;

end

s
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

img

向量运算:

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

a=1:n;

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

s=sum(f)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

img

式子二:

循环结构:

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

s=1;

for a=1:n

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

s=s*f;

end

s
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

img

向量运算:

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

a=1:n;

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

s=prod(f)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

img

6、建立5×6矩阵,要求输出矩阵第n行元素。当n值超过矩阵的行数时,自动转为输出矩阵最后一行元素,并给出出错信息。

a=rand(5,6);
n=input('请输入您要输出矩阵的第几行:');
if n>5
disp('超出了矩阵的行数,矩阵最后一行为:')
a(5,:)
else
disp(['矩阵的第',num2str(n),'行为:'])
a(n,:)
end
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

7、

1):

function f1=jay17(n)
f1=n+10*log(n*n+5);
end

>>jay17(40)/(jay17(30)+jay17(20))
  • 1
  • 2
  • 3
  • 4
  • 5

2):

function f2=jay17(n)
i=1:n;
m=i.*(i+1);
f2=sum(m);
end

>> y=jay17(40)/(jay17(30)+jay17(20))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

img

8、

img

函数:

function f=xt4_10(m,n)

if n<1  

f=0;

else  

f=n^m+xt4_10(m,n-1);

end
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

命令行窗口调用:

>>xt4_10(1,100)+xt4_10(2,50)+xt4_10(-1,10)
  • 1

img

思考练习:

一、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);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

二、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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

向量运算:

n=input('请输入n的值:');
a=1:n;
f=(-1).^(a-1)./(2.*a-1);
f=1./(4.^a);
s=sum(f)
  • 1
  • 2
  • 3
  • 4
  • 5

二、5.
函数文件:

function [f1,f2]=jay17(x1,x2)
f1=x1*x2;
f2=x1.*x2;
  • 1
  • 2
  • 3

命令行文件:

a=input('请输入一个矩阵:');

b=input('请再输入一个矩阵:(注意:两矩阵要可以相乘)');

[f1,f2]=jay17(a,b);

disp(f1)

disp(f2)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/59368
推荐阅读
相关标签
  

闽ICP备14008679号

        
cppcmd=keepalive&