当前位置: 主页 > 生物技术 > 软件与科研工具 > 生信分析与编程

MATLAB 课后习题答案整理

2026-04-05 11:48 bioguider Internet 阅读 0
核心摘要: MATLAB 课后习题答案整理涵盖了清除工作空间变量、历史指令窗的使用、变量生成方法以及M函数文件的结构。

第一章

第7题

 
 
命令 作用
clear 清除MATLAB工作空间中保存的变量;清除内存变量的操作
clf 清除图形窗
clc 清除指令窗中显示内容

第11题

在当前MATLAB过程中重新调回被执行过指令的方法有两种:

第一种方法:使用历史指令窗,对历史指令进行复制、编辑和再运行;并使用该窗口中的历史指令进行操作。

第二种方法:使用指令行编辑的常用操作键:

 
 
键名 作用 键名 作用
前寻式调回输入过的指令行 Home 使光标移到当前行的首端
后寻式调回输入过的指令行 End 使光标移到当前行的尾端
在当前行中左移光标 Delete 删去光标右边的字符
在当前行中右移光标 Backspace 删去光标左边的字符
PageUp 前寻式翻阅当前窗中的内容 Esc 清除当前行的全部内容
PageDown 后寻式翻阅当前窗中的内容

:以前的MATLAB过程中重新调回被执行过指令的方法只有一种,即上面的第二种方法。


第12题

历史指令窗:记录着用户在MATLAB指令窗中输入过的所有指令行,包括:

  • 每次开启MATLAB的时间

  • 每次开启MATLAB后在指令窗中运行的所有指令行

主要应用功能

  • 单行或多行指令复制和运行

  • 生成M文件

diary指令:能产生"日志"文件,即把当前指令窗中的所有内容(包括指令、计算结果等)如实地记录为ASCII文件加以保存。

与历史指令窗的区别

  • 生成的"日志"文件不能在MATLAB中运行

  • 不带扩展名的"日志"文件可以用MATLAB的M文件编制器或其他文本读写软件打开阅读和编辑


第二章

第1题

生成从 0 到 2π 的50个等分点向量的两种方法:

第一种方法

matlab
x = linspace(0, 2*pi, 50)

第二种方法

matlab
x = 0 : 2*pi/50 : 2*pi

第2题

matlab
>> rand('state', 0)
>> A = rand(3, 5)

A =
    0.9501    0.4860    0.4565    0.4447    0.9218
    0.2311    0.8913    0.0185    0.6154    0.7382
    0.6068    0.7621    0.8214    0.7919    0.1763

>> [ii, jj] = find(abs(A) > 0.5);
>> disp(ii'), disp(jj')
    1     3     2     3     3     2     3     1     2
    1     1     2     2     3     4     4     5     5

第三章

第3题

matlab
>> C_str = char('在英式用法中,引号通常是单引号,如''Fire!''。');
>> D_str = char('In GB usage quotation marks are usually single:''Fire!''。');
>> a{1,1} = C_str;
>> a{2,1} = D_str

a = 
    '在英式用法中,引号通常是单引号,如'Fire!''
    'In GB usage bquotation marks are usually single:'Fire!''

第四章

第10题

matlab
>> p1 = conv([3,0,1,0], [1,0,0,0.5]);
>> p2 = conv([1,2,-2], [5,2,0,1]);
>> [q, r] = deconv(p1, p2);
>> cq = '商多项式为'; cr = '余多项式为';
>> disp([cq, poly2str(q, 's')]), disp([cr, poly2str(r, 's')])

商多项式为   0.6 s - 1.44
余多项式为   -4.4409e-016 s^6 + 8.8818e-016 s^5 + 21.88 s^4 - 5.34 s^3 - 5.52 s^2 + 4.58 s - 2.88

第28题

见 4-28 的文件夹。


第五章

第17题

matlab
>> syms t s;
>> Fs = (s+3)/(s^3 + 3*s^2 + 6*s + 4);
>> Fs_t = ilaplace(Fs, s, t)

Fs_t = 
2/3*exp(-t) - 2/3*exp(-t)*cos(3^(1/2)*t) + 1/3*exp(-t)*3^(1/2)*sin(3^(1/2)*t)

第21题

matlab
>> S = solve('x^2+y^2=1', 'x*y=2', 'x', 'y');
>> disp('S.x'), disp(S.x), disp('S.y'), disp(S.y)

S.x
[  -1/2*(1/2*5^(1/2)+1/2*i*3^(1/2))^3+1/4*5^(1/2)+1/4*i*3^(1/2)]
[  -1/2*(1/2*5^(1/2)-1/2*i*3^(1/2))^3+1/4*5^(1/2)-1/4*i*3^(1/2)]
[ -1/2*(-1/2*5^(1/2)+1/2*i*3^(1/2))^3-1/4*5^(1/2)+1/4*i*3^(1/2)]
[ -1/2*(-1/2*5^(1/2)-1/2*i*3^(1/2))^3-1/4*5^(1/2)-1/4*i*3^(1/2)]

S.y
[  1/2*5^(1/2)+1/2*i*3^(1/2)]
[  1/2*5^(1/2)-1/2*i*3^(1/2)]
[ -1/2*5^(1/2)+1/2*i*3^(1/2)]
[ -1/2*5^(1/2)-1/2*i*3^(1/2)]

第六章

  • 第6题:见 6-6 文件夹

  • 第18题:见 6-18 文件夹


第七章

第1题

典型M函数文件的结构如下:

 
 
组成部分 说明
函数申明行 位于函数文件的首行,以MATLAB关键字function开头,函数名及输入输出宗量都在此定义
H1行 紧随函数申明行之后以%开头的第一注释行。包含:大写体的函数文件名;运用关键词简要描述的函数功能。供lookfor关键词查询和help在线帮助使用
在线帮助文本区 H1行及其之后连续以%开头的所有注释行。通常包括:函数输入输出宗量的含义,调用格式说明
编写和修改记录 与在线帮助文本区相隔一个"空"行,也以%开头,标志编写及修改该M文件的作者和日期、版本记录,用于软件档案管理
函数体 与前面注释以"空"行相隔。由实现该M函数文件功能的MATLAB指令组成。接收输入宗量,进行程序流控制,得到输出宗量

注意:从运算角度看,唯有"函数申明行"和"函数体"两部分是构成M函数文件所必不可少的。

其他要点

  • M脚本文件仅比M函数文件少一个"函数申明行"

  • 函数定义和保存文件名必须一致;不一致时,MATLAB以保存文件名为准

  • 函数文件的名字必须以字母开头,后面可以是字母、下划线及数字的任意组合,但不得超过31个字符


第2题

脚本文件特点

 
 
特点 说明
构成 只是一串按用户意图排列而成的MATLAB指令集合
变量驻留 运行后所产生的所有变量都驻留在MATLAB基本工作空间
变量清除 只有使用clear指令清除,或关闭MATLAB,这些变量才会被清除

函数文件特点

 
 
特点 说明
形式特征 第一行总是以function引导的"函数申明行",罗列与外界联系的"标称"输入输出宗量
调用灵活性 允许使用比"标称数目"较少的输入输出宗量
工作空间 每次运行时,MATLAB会专门开辟一个临时的函数工作空间,所有中间变量都存放在其中
空间清除 执行完最后一条指令或遇到return时,函数运行结束,临时函数空间及其所有中间变量立即被清除
空间特性 相对基本空间独立、临时。整个MATLAB运行期间可产生任意多个临时函数空间
脚本调用 如果在函数文件中调用某脚本文件,该脚本文件运行产生的所有变量都存放于该函数空间,而非基本空间

    发表评论