参考练习Matlab习题及解答1

更新时间:2023-10-19 08:19:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第1章 MATLAB入门

1.1 与其他计算机语言相比较,MATLAB语言突出的特点是什么?

MATLAB具有功能强大、使用方便、输入简捷、库函数丰富、开放性强等特点。

1.2 MATLAB系统由那些部分组成?

MATLAB系统主要由开发环境、MATLAB数学函数库、MATLAB语言、图形功能和应用程序接口五个部分组成。

1.3 安装MATLAB时,在选择组件窗口中哪些部分必须勾选,没有勾选的部分以后如何补安装?

在安装MATLAB时,安装内容由选择组件窗口中个复选框是否被勾选来决定,可以根据自己的需要选择安装内容,但基本平台(即MATLAB选项)必须安装。第一次安装没有选择的内容在补安装时只需按照安装的过程进行,只是在选择组件时只勾选要补装的组件或工具箱即可。

1.4 MATLAB操作桌面有几个窗口?如何使某个窗口脱离桌面成为独立窗口?又如何将脱离出去的窗口重新放置到桌面上?

在MATLAB操作桌面上有五个窗口,在每个窗口的右上角有两个小按钮,一个是关闭窗口的Close按钮,一个是可以使窗口成为独立窗口的Undock按钮,点击Undock按钮就可以使该窗口脱离桌面成为独立窗口,在独立窗口的view菜单中选择Dock ……菜单项就可以将独立的窗口重新防止的桌面上。

1.5 如何启动M文件编辑/调试器?

在操作桌面上选择“建立新文件”或“打开文件”操作时,M文件编辑/调试器将被启动。在命令窗口中键入edit命令时也可以启动M文件编辑/调试器。

1.6 存储在工作空间中的数组能编辑吗?如何操作?

存储在工作空间的数组可以通过数组编辑器进行编辑:在工作空间浏览器中双击要编辑的数组名打开数组编辑器,再选中要修改的数据单元,输入修改内容即可。

1.7 命令历史窗口除了可以观察前面键入的命令外,还有什么用途?

命令历史窗口除了用于查询以前键入的命令外,还可以直接执行命令历史窗口中选定的内容、将选定的内容拷贝到剪贴板中、将选定内容直接拷贝到M文件中。

1.8 如何设置当前目录和搜索路径,在当前目录上的文件和在搜索路径上的文件有什么区别?

当前目录可以在当前目录浏览器窗口左上方的输入栏中设置,搜索路径可以通过选择操作桌面的file菜单中的Set Path菜单项来完成。在没有特别说明的情况下,只有当前目录和搜索路径上的函数和文件能够被MATLAB运行和调用,如果在当前目录上有与搜索路径上相同文件名的文件时则优先执行当前目录上的文件,如果没有特别说明,数据文件将存储在当前目录上。

1.9 在MATLAB中有几种获得帮助的途径? 在MATLAB中有多种获得帮助的途径:

(1)帮助浏览器:选择view菜单中的Help菜单项或选择Help菜单中的MATLAB Help菜单项可以打开帮助浏览器;

(2)help命令:在命令窗口键入“help” 命令可以列出帮助主题,键入“help 函数名”可以得到指定函数的在线帮助信息;

(3)lookfor命令:在命令窗口键入“lookfor 关键词”可以搜索出一系列与给定关键词相关的命令和函数

(4)模糊查询:输入命令的前几个字母,然后按Tab键,就可以列出所有以这几个字母开始的命令和函数。

注意:lookfor和模糊查询查到的不是详细信息,通常还需要在确定了具体函数名称后用help命令显示详细信息。

第2章 MATLAB的基本数学功能

2.1 在MATLAB中如何建立矩阵??573??,并将其赋予变量a? 491??

2.2 有几种建立矩阵的方法?各有什么优点? 可以用四种方法建立矩阵:

2.3 在进行算术运算时,数组运算和矩阵运算各有什么要求?

进行数组运算的两个数组必须有相同的尺寸。进行矩阵运算的两个矩阵必须满足矩阵运算规则,如矩阵a与b相乘(a*b)时必须满足a的列数等于b的行数。

2.4 数组运算和矩阵运算的运算符有什么区别?

在加、减运算时数组运算与矩阵运算的运算符相同,乘、除和乘方运算时,在矩阵运算的运算符前加一个点即为数组运算,如a*b为矩阵乘,a.*b为数组乘。

?535??242??与?679?之和。 2.5 计算矩阵?374????????798??836??

2.6 求x??

2.7 计算a???693??241?与b???468?的数组乘积。 275?????4?8i3?5i2?7i1?4i7?5i??的共轭转置。 3?2i7?6i9?4i3?9i4?4i??

2.8 “左除”与“右除”有什么区别?

?492??37??,B??26?,求解X。 2.9 对于AX?B,如果A??764????????357??28???123??2.10 已知:a???456?,分别计算a的数组平方和矩阵平方,并观察其结果。

??789??

2.11 a??

?125??8?74?,b???362?,观察a与b之间的六种关系运算的结果。 36?4????2.12 a??50.20?8?0.7?,在进行逻辑运算时,a相当于什么样的逻辑量。

2.13 在sin(x)运算中,x是角度还是弧度?

2.14 角度x??304560?,求x的正弦、余弦、正切和余切。 2.15 用四舍五入的方法将数组[2.4568 6.3982 3.9375 8.5042]取整。

?912??,分别对a进行特征值分解、奇异值分解、LU分解、QR分解及Chollesky分解。2.16 矩阵a?? 563????827??2.17 将矩阵a???42??71??59?、和b?c???83??62?组合成两个新矩阵: 75??????(1)组合成一个4?3的矩阵,第一列为按列顺序排列的a矩阵元素,第二列为按列顺序排列的b矩阵

元素,第三列为按列顺序排列的c矩阵元素,即

?4?5 ??2??775?86?? 19??32?(2)按照a、b、c的列顺序组合成一个行矢量,即 ?452778135692?

3章 MATLAB程序设计基础

3.1 命令文件与函数文件的主要区别是什么?

3.2 如何定义全局变量?

3.3 如果x是一个结构型数组,如何观察其中的内容?

3.4 if语句有几种表现形式?

3.5 说明break语句和return语句的用法。

3.6 有一周期为4?的正弦波上叠加了方差为0.1的正态分布的随机噪声的信号,用循环结构编制一个三点线性滑动平均的程序。(提示:①用0.1*randn(1,n)产生方差为0.1的正态分布的随机噪声;②三点线性滑动平均就是依次取每三个相邻数的平均值作为新的数据,如x1(2)=(x(1)+x(2)+x(3))/3,x1(3)=( x(2)+x(3)+x(4))/3??)

t=0:pi/50:4*pi; n=length(t);

y=sin(t)+0.1*randn(1,n); ya(1)=y(1); for i=2:n-1

ya(i)=sum(y(i-1:i+1))/3; end

ya(n)=y(n);

plot(t,y,'c',t,ya,'r','linewidth',2)

3.7 编制一个解数论问题的函数文件:取任意整数,若是偶数,则用2除,否则乘3加1,重复此过程,直到整数变为1。

function c=collatz(n) % collatz

% Classic “3n+1” Ploblem from number theory c=n;

while n>1

if rem(n,2)==0 n=n/2; else

n=3*n+1; end

c=[c n]; end

3.8 有一组学生的考试成绩(见表),根据规定,成绩在100分时为满分,成绩在90~99之间时为优秀,成绩在80~89分之间时为良好,成绩在60~79分之间为及格,成绩在60分以下时为不及格,编制一个根据成绩划分等级的程序。

学生姓名 成 绩 王 72 张 83 刘 56 李 94 陈 100 杨 88 于 96 黄 68 郭 54 赵 65

Name=['王','张','刘','李','陈','杨','于','黄','郭','赵']; Marks=[72,83,56,94,100,88,96,68,54,65];

% 划分区域:满分(100),优秀(90-99),良好(80-89),及格(60-79),不及格(<60)。 n=length(Marks); for i=1:n

a{i}=89+i; b{i}=79+i; c{i}=69+i; d{i}=59+i; end; c=[d,c];

% 根据学生的分数,求出相应的等级。 for i=1:n

switch Marks(i) case 100 %得分为100时 Rank(i,:)=' 满分'; case a %得分在90~99之间 Rank(i,:)=' 优秀'; case b %得分在80~89之间 Rank(i,:)=' 良好'; case c %得分在60~79之间 Rank(i,:)=' 及格'; otherwise %得分低于60。 Rank(i,:)='不及格'; end end

% 将学生姓名,得分,级等信息打印出来。 disp(' ')

disp(['学生姓名 ',' 得分 ',' 等级']); disp('--------------------------') for i=1:10;

disp([' ',Name(i),' ',num2str(Marks(i)),' ',Rank(i,:)]); end

学生姓名 得分 等级 ----------------------------------------- 王 72 及格 张 83 良好 刘 56 不及格 李 94 优秀 陈 100 满分 杨 88 良好 于 96 优秀 黄 68 及格 郭 54 不及格 赵 65 及格

3.9 编写一段程序,能够把输入的摄氏温度转化成华氏温度,也能把华氏温度转换成摄氏温度。

k=input('选择转换方式(1--摄氏转换为华氏,2--华氏转换为摄氏):'); if k~=1 & k~=2

disp('请指定转换方式') break end

tin=input('输入待转变的温度(允许输入数组):'); if k==1

tout=tin*9/5+32; % 摄氏转换为华氏 k1=2; elseif k==2

本文来源:https://www.bwwdw.com/article/v2of.html

Top