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

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

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

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

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)

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

img

向量运算:

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

a=1:n;

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

s=sum(f)

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

img

向量运算:

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

a=1:n;

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

s=prod(f)

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

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

img

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)

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

二、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)
  • 6
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jay 17

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值