matlab80问(初学者适用)

更新时间:2023-05-05 00:32:01 阅读量: 实用文档 文档下载

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

M ATLAB 80问 1/109

一.入门篇

MATLAB有哪些主要功能? 初学者应如何利用这一数学软件去解决自己的问题?要解决这些问题,应该尽快熟悉一些常用命令,了解它们的功能和使用格式。

1.MATLAB 的特点是什么?

MATLAB是Matrix Laboratory的缩写,是Mathworks公司于1984年推出的一套科学计算软件,分为总包和若干工具箱。具有强大的矩阵计算和数据可视化能力。一方面可以实现数值分析、优化、统计、偏微分方程数值解、自动控制、信号处理、系统仿真等若干个领域的数学计算,另一方面可以实现二维、三维图形绘制、三维场景创建和渲染、科学计算可视化、图像处理、虚拟现实和地图制作等图形图象方面的处理。

同时,MATLAB是一种解释式语言. 简单易学、代码短小高效、计算功能强大、图形绘制和处理容易、可扩展性强. 其优势在于:

9矩阵的数值运算、数值分析、模拟

9数据可视化、 2D/3D的绘图

9可以与FORTRAN、C/C++做数据链接

9几百个核心内部函数

9大量可选用的工具箱

目前MATLAB 的最新版本是7.01版,它包括了MATLAB的各种工具箱,功能强大,适合于较高配置的计算机;同学们在安装MATLAB的时候,应该根据自己的机器情况选用不同的版本。

M ATLAB 80问 2/109

2.如何启动MATLAB ?

常用的进入MATLAB 方法是鼠标双击Windows 桌面上的MATLAB 图标,以快捷方式进入(如果没有图标,可在桌面上新建“快捷方式”,将MATLAB “图标”置于桌面)。下图展示了进入MATLAB 后的工作桌面(窗口),例

如,用键盘输入正弦函数符号及其四个不同的自变量 π/6,π/5,π/4,π/3,

可计算出对应的函数值。

第二种进入方法是鼠标点击 Windows 桌面左下角的“开始”按钮,选择“程序”,然后在第二级菜单中选择“MATLAB ”,最后再从第三级菜单中选择“MATLAB6.5”进入了MATLAB 系统,如下图所示。

图1-3 从开始菜单进入

MATLAB

M ATLAB 80问 3/109

在MATLAB 的环境中,键入 quit(或 exit) 并回车,将退出MATLAB ,返回到Windows 桌面。也可以用鼠标单击MATLAB 命令窗口右上方的关闭按钮“×”退出MATLAB 。如果想用计算机做另外的工作而不退出MATLAB ,这时可以单击MATLAB 命令窗口右上方的极小化按钮“ ”,暂时退出(并没有真正退出)MATLAB 并保留了工作现场,随时可以单击Windows 任务栏(屏幕下方)中的MATLAB 标记以恢复命令窗口继续工作。

3.如何用MATLAB 计算三角函数值

在MATLAB 环境下,计算三角函数的一个值或一组值非常方便,只要给定自变量的数据并知道函数名就可以计算出对应函数值。常用的三角函数和反三角函数见表1-1 表1-1 常用三角函数

函数

名称 函数 名称 sin(x)

正弦函数 asin(x) 反正弦函数 cos(x)

余弦函数 acos(x) 反余弦函数 tan(x) 正切函数 atan(x) 反正切函数

通常MATLAB 自变量采用弧度制,例如计算正弦函数在450(即4/π)处的值,只须在MATLAB 环境下键入 sin(pi/4),计算机屏幕将显示出计算结果

ans = 0.7071。

如果需计算出正弦函数 00060sin ,45sin ,30sin 的值,可键入

x=[pi/6,pi/4,pi/3];sin(x)

计算机屏幕将显示计算结果

ans = 0.5000 0.7071 0.8660。

这说明MATLAB 可以同时计算出某一函数在多个点处的值,而且所用的格式与数学书写格式几乎是完全一致的。

4. MATLAB 有哪些基本数学函数?

除了三角函数和反三角函数以外,MATLAB 的内部函数还包括基本初等函数在内的一些函数。这些函数的使用如同正弦函数一样,需要给定自变量数据,然后键入函数名、括号、自变量名并回车,便可得对应的函数值数据。表1-2

M ATLAB 80问 4/109

中列出了部分数学函数

表1-2 常用基本函数

函数名称函数名称

abs(x) 绝对值max(x) 最大值

min(x) 最小值sum(x) 元素的总和

sqrt(x) 开平方exp(x) 以e为底的指数

log(x) 自然对数log10(x) 以10为底的对数

sign(x) 符号函数fix(x) 取整

如果想进一步了解MATLAB有哪些函数,请键入

help matlab\elfun (回车)

计算机屏幕将显示出更多的细节,其中还有双曲函数和反双曲函数等。

注意,计算函数值时必须首先确定自变量的数据(一个或一组)。例如,随机抽取10名大学生的《高等数学》课程考试成绩,并统计他们中的最高分、最低分、以及这10人的平均分。可以利用表1-2中的函数 max、min、sum来实现。首先在MATLAB环境下输入10个分数值并赋值给f

f=[88,84,73,69,78,80,90,96,86,77]

然后分别计算这10个数据的最大值、最小值、平均值:

h=max(f)

l=min(f)

m=sum(f)/10

计算机屏幕显示最高分h = 96;最低分l = 69;平均分 m = 82.1000。

虽然MATLAB的内部函数已经相当多,但是还是不能完全满足人们的需求。如果需要计算一个复杂的函数值,我们必须利用字处理软件编写一个新的函数文件(参考下一部分基础篇),才能实现对函数值的计算。

5.如何用plot命令绘平面图形?

plot是MATLAB的最基本的绘制二维图形指令。其主要功能是根据函数表

X x1x2……x n

Y y1y2……y n

绘制出函数的图形。用plot命令绘图必须要输入自变量的一组值,并计算出对应的函数值,其基本调用格式有下面几种:

(1) plot(X ,Y) 绘制出以X = [x1 x2…x n]为横坐标,以 Y =[y1 y2…y n]为纵坐标的平面上点的连线图;

M ATLAB 80问 5/109

(2)plot(Y) 绘出以 Y =[y 1 y 2 … y n ]为纵坐标, X =[1 2 … n]为横坐标的二维图形;

(3) plot(X1,Y1,X2,Y2)同时绘出两个函数表 (X1, Y1)及 (X2, Y2)所描述的函数;

(4) plot(x,y,’s’) 中的选项s 可以控制图形的颜色及图形的线方式(或点方式)。

表1-3 图形控制选项列表

线方式

点方式 颜色 实线 -

点 . 红 r 虚线 --

加号 + 绿 g 冒号 :

星号 * 兰 b 横点 -.

圆 o 白 w 叉 x

例如,要绘制正弦函数在]2,0[π内变化的曲线,可以先确定出0到π2之间,间隔为0.2的一组自变量数据,然后计算正弦函数在这些点处的函数值,最后根据所得数据绘制出函数图形。

x =0:0.2:2*pi ;y =sin(x );plot (x ,y )

6.如何在MATLAB 中创建矩阵?

本页已使用福昕阅读器进行编辑。

福昕软件(C)2005-2007,版权所有,

仅供试用。

M ATLAB 80问 6/109

计算函数值须输入自变量数据,计算机程序也必须在数据集合上才能运行,所以初始数据的输入十分必要。在计算机程序设计中人们习惯将矩阵称为二维数组,将向量称为一维数组。向量本质上是一类特殊的矩阵,矩阵可以分解为一系列行向量或列向量,有限个同维行(列)向量也可以构成一个矩阵。

MATLAB 以矩阵为数据单元,数据的输入实际上是创建矩阵。

(1) 对于小型矩阵的创建可以用方括号方法。如:

A =[ 1 2 3;4 5 6;7 8 9 ];

就创建了一个3×3的矩阵。注意:矩阵中同一行的元素用“空隔”或“,”隔开,行与行之间用分号“;”隔开。也可以用回车换行来代替分号。如 A

=[

1 2 3 4 5 6

7 8 9 ];

仍然可以创建同样的3×3矩阵。

(2) 利用矩阵的剪裁和拼装创建新的矩阵。例如在MATLAB 中键入命令

a=[1 2 3;4 5 6;7 8 9];b=[1;1;1];

得到矩阵和向量

??????????=987654321a , ?

?????????=111b 命令 A=[a b ],将矩阵a 和向量b 拼装成新的矩阵

????

??????=19

8716

5413

21A 而命令 a 1 = a(1:2,2:3)将得到新的2阶矩阵 ??

????=65321a (3) 对于大型矩阵的创建可以用数据文件的方法。

首先,用编辑器编辑一个数据文件,在这个文件中逐行录入矩阵的所有数据;然后,在MATLAB 环境下用 load 指令将这一矩阵调入工作空间(计算机内存)。使用这种方法时须注意,文件名即是变量名。例如,某地区有12个气象观测站,记录了10年以来所测得的每年的年降雨量数据。每一个站点的十个数据构成了矩阵的一个行向量,12个站点的数据就构成了一个12×10的矩阵。用编辑器如记事本编辑器编辑这个具有120个数据的文

本页已使用福昕阅读器进行编辑。

福昕软件(C)2005-2007,版权所有,

仅供试用。

M ATLAB 80问 7/109

件名为a1.dat 的数据文件的步骤如下:

第一步:在MATLAB 环境中键入 edit a1.dat (回车)进入编辑环境;

第二步:逐行录入矩阵的所有数据

276.2 251.6 192.7 246.2 291.7 466.5 258.6 453.4 158.5 324.8; 324.5 287.3 436.2 232.4 311.0 158.9 327.4 365.5 271.0 406.5; 158.6 349.5 289.9 243.7 502.4 223.5 432.1 357.6 410.2 235.7; 412.5 297.4 366.3 372.5 254.0 425.1 403.9 258.1 344.2 288.8; 292.8 227.8 466.2 460.2 245.6 251.4 256.6 278.8 250.0 192.6; 258.4 453.6 239.1 158.9 324.8 321.0 282.9 467.2 360.7 284.9; 334.1 321.5 357.4 298.7 401.0 315.4 389.7 355.2 396.4 290.5; 303.2 451.0 219.7 314.5 266.5 317.4 413.2 228.5 179.4 343.7; 292.9 466.2 245.7 256.6 251.3 246.6 466.5 453.6 159.2 283.4; 243.2 307.5 411.1 327.0 289.9 277.5 199.3 315.6 342.4 281.2; 159.7 421.2 357.1 296.5 255.4 304.2 282.1 456.3 331.2 243.7; 331.2 455.1 353.2 423.0 362.1 410.7 387.6 407.2 377.7 411.1 将文件存盘后退出EDIT 环境,回到MATLAB 环境中。

第三步:键入 load a1.dat (回车)便将数据调入内存。键入 a1 (回车)计算机屏幕将显示矩阵a1的12×10的全部数据。

7. 创建向量有哪些方法?

向量在计算机中称为一维数组,在计算某一函数的一组值时,需要给定一组自变量的值,即创建向量。

(1)创建向量的通用方法是冒号法。使用格式为 x = 初值:步长:终值 注意:当初值小于终值时,步长必须为正数;当初值大于终值时,步长必须为负数。当步长为1时,可以省略不写。如果初值为1,步长为1,终值为10。则可以键入

x=1:10

则创建了向量 x=[ 1 2 3 4 5 6 7 8 9 10 ]。

如果初值为1,步长为0.5,终值为10。则可以键入

x1=1:0.5:10

则创建具了向量 x1=[ 1 0.5 2 2.5 3 …… 8 8.5 9 9.5 10 ]。

(2)利用 linspace 和 logspace 指令创建向量。

命令linspace(x1,x2)将产生一个具有100个元素的行向量,这个行向量的元素是介于本页已使用福昕阅读器进行编辑。

福昕软件(C)2005-2007,版权所有,

仅供试用。

M ATLAB 80问 8/109

x1和x2之间的有限等差数列,即行向量的第一个元素为x1,最后一个元素是x2。

命令linspace(x1, x2, N) 将产生介于x1和x2之间的 N 个点形成的行向量,向量的第一个元素为 x1 最后一个元素为 x2,仍是等差数列。 例如x=linspace(1,6,8)将得到介于1到6之间的八个元素的行向量

x =[1.0000 1.7143 2.4286 3.1429 3.8571 4.5714 5.2857 6.0000]

logspace(d1, d2)将产生具有50个对数等距点的行向量,其中向量的元素介于10d1和10d2之间。

logspace(d1, d2, N) 将产生 N 个对数等距点的行向量。

(3) 利用已有的矩阵剪裁方法创建向量。

例如,在MATLAB 中用下面的命令

A =[ 1 2 3;4 5 6;7 8 9 ];

创建了矩阵

?

?????????=987654321A 键入 p 1 = A ( 1,: ),可得行向量 p 1 = [1 2 3]。这是矩阵 A 的第一行行向量。 键入 p 2 = A ( :,1 ),可得列向量 p 2 = [1 4 7]T

。这是矩阵 A 的第一列列向量。 同理, A (2,:)、A (3,:) 分别得到矩阵A 的第二行和第三行两个行向量; A (:,2)、A (:,3) 分别得到矩阵A 的第二列和第三列两个列向量。

8.特殊符号 “;”和“:”有何用处?

在MATLAB 中,分号“;”的用处通常有两个,一是是用于矩阵数据输入时将相邻两行数据分隔开;二是将它用于一条MATLAB 命令之后,使该命令被执行后所产生的数据结果(如果有数据结果)不显示在计算机屏幕上(因为计算机CPU 运行速度远高于屏幕显示速度,在程序运行时不显示一些中间数据将节约不少时间)。

例如,在MATLAB 中键入

y=sin(pi/5);

计算机将计算出正弦函数在5/π处的函数值,并把计算所得的值赋值给y ,但是计算机屏幕上却不显示出任何数据。如果想知道y 的值是多少,只须键入y 并回车,屏幕上将显示出y 的数据。

在MATLAB 中冒号“:”的用处通常也有两个,一是用于循环,二是用于矩阵的裁剪。

本页已使用福昕阅读器进行编辑。

福昕软件(C)2005-2007,版权所有,

仅供试用。

M ATLAB 80问 9/109

如,语句 “x=1:6”将产生一个具有六个元素的向量

x = [1 2 3 4 5 6]

“x=100:-5:10”将产生一个具有十九个元素的向量

x = [100 95 90 … 20 15 10]

对于矩阵

?

?????????=087654321A A( 1 ,: )表示矩阵A 的第一行之所有元素形成的行向量 1 2 3。A( : ,1 )则表示矩阵A 的第一列所有的元素 1 4 7形成的列向量。而A(1:2 , 1:2) 则表示矩阵A 的前两行和前两列的元素形成的2阶矩阵

??

????5421 9.如何求解一元n 次方程

求一元n 次方程的根用命令roots 。我们都知道,一元二次方程 02

=++c bx ax 的求根公式为 a ac b b x 2422,

1?±?= 例如对于方程式08522=++x x ,首先输入系数,然后按公式计算两个根的值,在

MATLAB 中键入

a=2;b=5;c=8;

p=sqrt(b^2-4*a*c);

x1=(-b-p)/(2*a)

x2=(-b+p)/(2*a)

计算机屏幕将显示此方程的两个根:

x1 = -1.2500 - 1.5612i x2 = -1.2500 + 1.5612i

对于高次方程,比如5次以上的方程,我们无法用求根公式求解。但是用MATLAB 的求多项式零点的命令可以求出高次方程的全部根。以上面的例子为例,只须键入

roots([2,5,8])

并回车,计算机将显示 ans =

本页已使用福昕阅读器进行编辑。

福昕软件(C)2005-2007,版权所有,

仅供试用。

M ATLAB 80问 10/109

-1.2500 + 1.5612i

-1.2500 - 1.5612i

这与前面计算结果相同,由此可知命令“roots([2,5,8])”求出了一元二次方程

08522=++x x

的全部根。所以对于一个高次代数方程

01110=++++??n n n n a x a x a x a L

用命令 roots([a 0 a 1 … a n ])可以求出该n 次方程的全部根。

10. 如何求解线性方程组?

当一个方程组 Ax=b 有唯一解时可用指令 A \b 直接求解,其中,A 是线性方程组的系数矩阵,b 是方程组的右端向量。例如给定线性方程组

?????

????????=????????????????????????????017432315322235221214321x x x x 可以先输入系数矩阵和右端向量,然后直接求解,在MATLAB 中键入

A=[1 2 1 -2;2 5 3 -2;-2 -2 3 5;1 3 2 3];

b=[4;7;-1;0];

x=A \b

计算机执行后,将显示数据结果

x= 2 -1 2 -1

由此得知方程组的解为

x 1 = 2,x 2 = -1,x 3 = 2,x 4 = -1

上面这一种方法非常适用于方程组有唯一解的情形,在处理实际问题时,有些方程组有无穷多组解,这时可用另一条指令 rref([A b ]) 化简方程组的增广矩阵,然后利用线性代数的方法得出方程组的通解。当方程组有唯一解时,仍然可以用这一指令,例如求解上面例子在MATLAB 中键入

A=[1 2 1 -2;2 5 3 -2;-2 -2 3 5;1 3 2 3];

b=[4;7;-1;0];

rref([A b])

本页已使用福昕阅读器进行编辑。

福昕软件(C)2005-2007,版权所有,

仅供试用。

M ATLAB 80问 11/109

计算机执行后,屏幕将显示数据结果

ans = 1 0 0 0 2

0 1 0 0 -1

0 0 1 0 2

0 0 0 1 -1

这一矩阵与增广矩阵等价(4个非零行5列),由此写出与原方程等价的方程组,即

x 1 = 2,x 2 = -1,x 3 = 2,x 4 = -1

如果用rref([A b])命令得到最后的矩阵中非零行数小于列数减1,则可求出线性方程组的通解。有关线性方程组的通解和基础解系的概念请参考线性代数教材。

11.如何求解矩阵方程?

在一个矩阵方程中,未知元素是一个矩阵。线性代数中的矩阵方程总可以写成如下两种形式中的一种

B AX = 或 B XA =

这里,X 是未知矩阵,而A 、B 则是已知的矩阵。这两种类型的矩阵方程的解分别为

X = A -1B 或 X = BA -1

在MATLAB 环境中,可以分别用下面两条命令求解这两类方程 X = A \B 或 X = B /A

注意,A 左除B (用反斜杠)相当于用A 的逆矩阵左乘矩阵B ;A 右除B (用斜杠)相当于用A 的逆矩阵右乘矩阵B 。

例如求矩阵方程

???????????=?

???????????121111*********X 可用如下命令

A = [1 1 -1;0 2 2;1 -1 0];

B = [1 -1;1 1;2 1];

X = A \B

计算机运行后,显示数据结果

X =

1.8333 0.5000

本页已使用福昕阅读器进行编辑。

福昕软件(C)2005-2007,版权所有,

仅供试用。

M ATLAB 80问 12/109 -0.1667 -0.5000

0.6667 1.0000

这就是矩阵方程的解。显然,X 是一个3×2阶的矩阵。

再例如,求矩阵方程

???????=?????????

???011111011220111X 可用如下命令

A = [1 1 -1;0 2 2;1 -1 0];

B = [1 -1 1;1 1 0];

X = B /A

计算机运行后,显示数据结果

X =

-0.3333 0.3333 1.3333

0.6667 0.3333 0.3333

显然,这一矩阵方程的解是一个2×3的矩阵。

12. 如何求一个n 阶行列式的值?

如果已经输入了一个方阵A 的全部数据,那么只须用命令 det(A ) 就能求出A 的行列式的值。对于一个特殊的n 阶行列式的计算必须先分析行列式中数据分布的规律,用算法产生对应的矩阵A ,然后用命令 det(A ) 计算出具体的行列式的值。

例如对于n 阶行列式

n

L L

L L L L L L L 22223222

2222

221

分析数据分布的规律可知,对应的矩阵主对角元素是 1、2、3、…、n ,而其余的元素均为

2。另外,当行列式的阶数不同时数据结果也不一样,所以n 扮演参数的角色。请参考下面的程序段计算行列式的值

n=input('input n= ?');

M ATLAB 80问 13/109

A=2*ones(n ,n);

for k=1:n

A(k ,k)=k ;

end

det(A)

这里,第一条语句是要求从键盘上输入一个n 的值,第二条语句是创建全部元素为2的n 阶方阵,接下来用 for …… end 语句将方阵的主对角元修改为1、2、3、…、n ,最后用求行列式命令计算并显示出该行列式的值。如果将n 的值输入为5,计算结果为 -12;如果将n 的值输入为6,则计算结果为 -48;……,从多次试验的数据结果可以猜测出本题答案为 -2(n -2)!。但是,这样多次使用这段程序计算必须将程序作为一个方件保存在磁盘上,关于MATLAB 的文件操作请参考问题 22 。

13.如何使用MATLAB 的在线帮助 ?

MATLAB 的命令非常多,即使是经常使用这一软件的人,也会忘记常用的MATLAB 命令。对于记住的一些命令,在使用时又可能忘记了格式。这时,可以向MATLAB 系统寻求帮助。获取MATLAB 指令的帮助信息有多种方法,这里介绍常用的三种。

(1)知道命令名称,不熟悉使用格式,可以用help 的命令获得帮助,格式如下 help (回车) 。

例如:键入 help magic (回车) 屏幕将显示怎样使用 magic 命令求 n 阶幻方。 MAGIC(N) is an N-by-N matrix constructed from the integers 1 through N^2 with equal row and column sums.

根据帮助信息,在MATLAB 环境下键入 magic(3) (回车),屏幕上会出现 3 阶幻方矩阵:

????

??????294753618 这一矩阵的每一行元素之和均为15,每一列元素之和也均为15。由此可以体会到magic 这条指令的使用方法以及它的具体功能。

(2)知道命令名称的第一个英文字母,可用鼠标选择MATLAB 命令窗口上方菜单栏中的“help ”选项,再从下拉菜单中选择“Index ”。这时,屏幕上将出现MATLAB 的帮助窗口,窗口首先出现MATLAB 全部命令名称的索引,索引的命令名按英文字母顺序排列。找到你所需要的命令名,用鼠标单击它,将会得到该命令的英文帮助信息。

M ATLAB 80问 14/109

(3)如果忘记了所要使用的命令的名称,可以根据命令的功能属于哪一类来进行分类的查找。MATLAB的所有命令和语句被划分为30类。在MATLAB环境下键入指令 help (回车) 屏幕将显示出关于MATLAB的30个类的名称。

toolbox\local 本地函数库(启动MATLAB时所需的文件)

matlab\datafun 数据分析和付里叶变换(统计计算、离散卷积、快速付里叶变换)matlab\elfun 基本数学函数(三角函数、双曲函数、指数函数、对数函数等)matlab\elmat 基本矩阵和矩阵操作(常用矩阵、特殊变量和常数、时钟函数)matlab\funfun 函数操作——非线性数值方法(数值积分、常微分方程求解等)matlab\general 常用操作命令(用于日常管理、窗口控制的命令和变量)

matlab\color 色彩控制和灯光效果(关于图形的色彩和灯光效果控制命令)

matlab\graphics 图形窗口控制及一般绘图命令(清除、保持图形、做动画等)

matlab\iofun 低级文件输入/输出命令(打开、关闭文件,读写二进制文件等)matlab\lang 语言结构和调试(MATLAB编程常用的一些命令和语句)

matlab\matfun 矩阵函数和数值线性代数(矩阵变换、矩阵分解、特征值等)matlab\ops 运算符和特殊符号(算术运算、逻辑运算以及特殊符号)

matlab\plotxy 二维图形绘图命令(绘制平面图形的各种命令)

matlab\plotxyz 三维图形绘图命令(绘制空间图形的各种命令)

matlab\polyfun 多项式函数与插值函数(有关多项式运算以及代数插值、样条)matlab\sounds 声音处理函数(声音的读写、变换等)

matlab\sparfun 稀疏矩阵函数(稀疏矩阵的创建、图论中的图的绘制等命令)

matlab\specfun 特殊数学函数(贝塞尔函数、误差函数、椭圆积分等)

matlab\specmat 特殊矩阵(希尔伯特矩阵、幻方矩阵、多项式的伴随友阵等)

matlab\strfun 字符串函数(关于字符串的操作,字符比较、字符变换等)

matlab\dde 动态数据交换工具箱

matlab\demos MATLAB自动演示系统所用的主程序和全部M文件

根据分类的信息,可以再次用“help”命令。例如键入

help elfun

将获得MATLAB中全部基本数学函数的清单。最后可以用“help”命令获取具体命令的帮助信息。

14. MATLAB有哪些运算符号及特殊字符?

MATLAB具有其它计算机高级语言(如BASIC、FORTRAN、C)所具有的内部函数和用于算术运算和逻辑运算的运算符号和关系符号。

M ATLAB 80问 15/109

早期的MATLAB 主要是针对矩阵进行运算(MATLAB 的名称来源于矩阵实验室),所以它还具有一些特殊的运算符号。如点乘、点除、点方幂等,正是这些特殊的功能使得这一软件具有高效的编程环境。无论是在MATLAB 的交互式环境下使用各种指令,还是利用批处理进行编程,这些运算符号和特殊字符都是使用者所必须熟悉的。

+ 加法运算。适用于两个数相加或两个同阶矩阵相加。

- 减法运算。

* 乘法运算。适用于两个数相乘或两个矩阵相乘。

.* 点乘运算。适用于两个同阶矩阵对应元素相乘。例如:

[1 2 3].*[1 2 2] 其结果为:[1 4 6]。

./ 点除运算。例如:

[1 2 3]./[1 2 2] 其结果为:[1 1 1.5]。

^ 乘幂运算。

\ 反斜杠表示左除。如,x A B =\ 可以得到矩阵方程 Ax B =的解。 pi 数学常数 π。即,3.1415926535897......。

! 惊叹号用于后接DOS 操作命令(不退出MATLAB 执行DOS 命令)。 如,使用DOS 的编辑器 EDIT.EXE 编写MATLAB 程序,可以键入 !EDIT (回车) 就进入编辑环境,编写文件名为 LAB1.M 的 MATLAB 程序。

== 双等号表示相等关系符号。另外,“<” 和 “>”分别表示小于和大于 关系符号。

% 用于注释行开始。在程序中某行的第一列加上%,将不执行这一行。 & 逻辑与运算符号。另外,“|”和“~”分别表示逻辑或和逻辑非运算符

号。(注意:“~” 这个符号在计算机键盘左上角,与“`”在同一键上)。

15.WHO 和CLEAR 有什么用处?

这两条指令主要用于管理MATLAB 的工作空间。计算机内存是非常宝贵的资源,如果连续使用MATLAB 的时间较长,已经创建或产的很多变量,就会占用相当多的空间。而一些过时无用的变量长时间滞留于内存,对另外的一些数据产生干扰。这时,应当清理工作空间,删除一些过时不用的变量以释放计算机内存。这样就可以保持一个正常良好的工作环境,使工作可以不间断地进行下去。

指令WHO 用于显示出当前工作空间中存在的所有变量列表,而另一指令CLEAR 则可以用于清除多余的变量。 CLEAR x 仅仅清除变量 x 。CLEAR x y z 将清除变量 x 、 y 、z 。注意:单独使用CLEAR 将清除掉所有工作空间的变量,这样等同于退出MATLAB 再重新进入。

另外,指令WHOS 不仅列出当前工作空间中的所有变量,还将每一变量所占用的空间大小列表显示出来。从所显示出的信息还可以得知这些变量中哪些

M ATLAB 80问 16/109

是矩阵,哪些是向量,哪些是单个的数据。

16.如何用MATLAB 绘制标志的图形?

MATLAB 软件系统的图标的雏形是二元函数

f x y e x y x y (,)..,..()=?≤≤?≤≤?+2223081515

所对应曲面图形。这一曲面图形和MATLAB 的系统图标有一些微小的差别。 在MATLAB 环境中键入如下指令

x = -2.3:0.1:0.8;y =x +0.8; %确定离散点横坐标和纵坐标

[x ,y ] = meshgrid(x ,y ); %产生二元函数自变量域的离散点 z=exp(-(x.^2+y.^2)); %计算各离散点处函数值 z(20:32,1:14)=zeros(13,14); %修改部分函数值为零

mesh(z) %根据离散点处函数值绘图 这五行指令被计算机执行后,屏幕上将显图1-6

中的图形。Mesh 是绘制曲面的命令,具体使用格式请参考问题47。

图1-6 系统标志图形 本页已使用福昕阅读器进行编辑。

福昕软件(C)2005-2007,版权所有,

仅供试用。

M ATLAB 80问 17/109

17.如何保存计算所得的数据结果?

保存数据结果是非常有用的,例如第16问题中通过计算获得了图1-6中曲面上各点处的高度值,这些数据以变量z 的名义保存在计算机内存中,一旦退出MATLAB ,变量z 所含的数据就会丢失。在这种情况下可用命令 “save date1 z ” 将变量z 的数据保存在磁盘上,下一次使用MATLAB 时用命令 “load date1” 将所保存的数据从磁盘上调入内存,可以再次使用。

这里,date1 是数据文件名。Save 命令的具体使用格式如下

save 文件名 变量名1 变量名2 … 变量名n (回车)

如果将文件名取为 date1,则MATLAB 将在磁盘上产生一个文件,文件名为 date1.mat ,这一文件保存了“变量1 变量2 … 变量n ”这 n 个变量的数据。使用这一命令时缺省了变量名,即只用命令“save date1”,则MATLAB 会将当前工作空间中所有的变量(数据)保存在文件date1.mat 中。

将数据恢复(即从磁盘上将数据读入内存)所用命令的格式如下

load 文件名(回车)

如果执行命令 load date1 ,MATLAB 会将 date1.mat 文件中所含变量(数据)调入工作空间。

18.如何观看MATLAB 的入门演示 ?

本页已使用福昕阅读器进行编辑。

福昕软件(C)2005-2007,版权所有,

仅供试用。

M ATLAB 80问 18/109

在MATLAB的命令窗口中键入“demos”并回车,将进入下图所示的help窗口。初学者在观看入门演示中将获得MATLAB的基础知识。用鼠标点击窗口左栏选项(如

Graphics), 将展开可选的演示项(见上图). 再用鼠标点击需要了解的内容, 再右栏点击“run this demo”, 将进入示例演示程序, 同时matlab的基本命令及使用方法将显示在迷你命令

M ATLAB 80问 19/109

窗口里。下面, 我们以3-D Plots为例演示操作步骤.

从这些基本指令的介绍中,你可以看到MATLAB用于数值计算和图形绘制的强大功能和易学易用的特点。Demo中每一步的观看可用鼠标操作, 初学者可以多做一些尝试以获

.

得对数学软件MATLAB的初步印象, 点击“close”会关闭演示

19.如何将MATLAB计算结果保存到WORD文稿中?

WORD是微软公司出品的一个优秀文字处理软件,除了可以方便输入中、英文文字和编辑排版外,它的另一优点就是能快速编辑数学公式。目前世界上很多科技工作者都用这一软件写作论文。为了保证数据结果的正确性,在MATLAB与WORD之间进行数据传送是很重要的。

数据传送应该是双向进行,传送的意义包括两方面。一是将MATLAB工作环境中计算获得的数据结果快速而且准确无误地保存到WORD文稿中。二是检验WORD文稿中某

M ATLAB 80问 20/109

一数据结果,如积分值、方程的根等是否正确。这两种传送都可以利用Windows98中剪贴板的“粘贴”功能实现。通常用得较多的是第一种数据传送,即由MATLAB到WORD的数据单向传送。

数据结果可以是单独一个的数据,也可以是多个数据(向量或矩阵),具体的操作如下

(1)在MATLAB命令窗口中,将数据结果选定;

(2)在MATLAB命令窗口上方菜单栏中,用鼠标单击“EDIT”,在下拉菜单中选择

“COPY”;

(3)切换到WORD文稿的窗口,将光标移到数据应该出现的位置;

(4)用鼠标单击WORD工具栏上的“粘贴”按钮。

x的值。在MATLAB窗口中键入 quat(’sin’,0,pi) ,并例如,计算定积分∫π0sin dx

回车,得 ans = 2.0000。按上面四步操作将数据结果粘贴到WORD文稿中,这是单个数据的单向传送。

∫π0sin xdx”,然后将积分的数我们可以利用WORD所带的公式编缉器输入符号“=

据结果从MATLAB命令窗口中粘贴到等号后面。得Array

图 1-7 选定MATLAB命令窗口中的数据

∫π0sin xdx 2.0000

=

也可以按上面介绍的操作步骤,将MATLAB计算所得的多个数据结果“粘贴”至WORD文稿中的合适位置,然后用WORD的编辑功能将数据转换为表格。

在WORD工作窗口中,用鼠标将“粘贴”而来的多个数据选定,然后选择“表格”菜单中的“将文字转换成表格”即可完成这项工作。

例如计算下列函数值

M ATLAB 80问 21/109 ∫?=j

x j dt t x f 02)2exp(21

)(π,( x 1 = 1,x 2 =2,x 3 =3 ) 可以用MATLAB 计算出三个函数值并粘贴后,在WORD 文稿中创建下面表格 表1-5

x

1 2 3 f (x ) 0.3413 0.4772 0.4987

表格的具体操作请参考WORD 的有关书籍,如表格居中、表格内各单元的文字符号居中、表格中各单元的高度和宽度“设置值”的调整。结合这些命令可以制做出美观、大方的数据表格。

20.如何将MATLAB 所绘图形置入WORD 文稿

文字处理软件WORD 的另一个突出的优点就是“图文混排”,我们可以在WORD 文稿中置入图形、图片,使得WORD 所编辑的文稿丰富多彩。而MATLAB 的“绘制图形”功能可以很方便地绘出函数的图形,或由数据结果绘出所需要的空间曲线图形、统计直方图、复杂的二维曲面图等等。这些图形都显示在MATLAB 的图形窗口中,我们可以通过Windows98的剪贴板功能将图形直接“粘贴”到WORD 文稿中。

例如已知曲线的方程为

x e y x 5sin 5.0?=

现绘制对应的曲线图形。在MATLAB 命令窗口中键入

x=0:0.1:8;

y=exp(-0.5*x) .* sin(5*x);

plot(x,y)

MATLAB 的图形窗口中将绘出衰减振荡曲线。为了将图形置入WORD 文稿中,可以按如下操作进行

(1) 在MATLAB 的图形窗口中用鼠标单击菜单栏中的“Edit ”,在下拉菜单中选择

“Copy ”;

(2) 切换到WORD 文稿的编辑窗口,用鼠标单击菜单栏中的“插入”菜单,在下拉

菜单中选择“文本框”,“横排”;

(3) 将鼠标光标(十字架)移到文稿中适当的位置处,按住鼠标左键向右下方拖动,

出现文本框;

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

Top