当前位置:文档之家› Matlab初级教程

Matlab初级教程

Matlab初级教程
Matlab初级教程

Matlab 简易教程

吴志远编

2009年5月编于钦州学院

前言

Matlab是matrix laboratory的缩写,是矩阵实验室的意思,它是一个功能强大的数学工具软件。Matlab的产生是与数学计算紧密联系在一起的,1980年美国新墨西哥大学计算机科学系主任cleve Moler在给学生讲授线性代数课程时,发现学生利用高级语言编程解决线性代数问题花费很多时间,为了减轻学生编程的负担,用高级语言编写了最早的MATLAB。

Matlab语言是一种用于工程计算的高性能语言,它主要包括两大内容:核心函数和工具箱。Matlab的典型应用包括以下几个方面:数学计算、算法开发、建模及仿真、数据分析及可视化、科学及工程绘图、应用开发。

目录

第1章matlab的工作环境 (4)

1.启动和退出matlab (4)

2.菜单和工具栏 (4)

3.命令窗口 (4)

4.历史命令窗口 (4)

5.当前工作目录窗口 (5)

6.工作空间窗口 (5)

第2章基本运算与函数 (5)

1.三角函数 (6)

2.指数和对数函数 (6)

3.复数函数 (6)

第3章数组、矩阵及其运算 (6)

3.1 向量的创建 (7)

3.1.1 一维数组(向量)的创建 (7)

3.1.2 一维向量元素寻访和赋值 (8)

3.2 矩阵的创建 (9)

3.2.1 矩阵的创建 (9)

3.2.2 矩阵的寻访和赋值 (9)

3.3 向量与矩阵的运算 (11)

3.3.1 向量与矩阵的代数运算 (11)

3.3.2 向量与矩阵的关系运算 (13)

3.3.3 矩阵的运算 (13)

第4章Matlab程序设计基础 (15)

4.1 M文件基础 (15)

4.1.1 M文件的创建 (16)

4.1.2 自定义函数 (16)

4.2 matlab程序控制结构 (16)

4.2.1 循环语句 (17)

4.2.2分支结构 (18)

第5章matlab求解数学问题 (20)

5.1 符号表达式的生成 (20)

5.2 符号方程的求解 (20)

5.3 极限 (21)

5.4 导数和微分 (22)

5.4.1 导数 (22)

5.4.2 积分 (22)

5.5 函数的零点 (24)

5.6 一元函数的极值 (24)

5.7 级数 (25)

5.8 微分方程问题的计算 (26)

5.8.1 微分方程的求解 (26)

5.8.2微分方程组的解 (26)

5.9 多项式运算 (26)

第6章matlab图视化功能 (27)

6.1 二维图形 (27)

6.2三维图形 (28)

6.2.1 三维直线绘图 (28)

6.2.2 三维曲面 (29)

第7章曲线拟合与插值 (31)

7.1 曲线拟合 (31)

7.2 插值 (33)

第1章 matlab的工作环境

1.启动和退出matlab

启动matlab程序与启动其它windows程序一样,通常通过单击桌面上的相应图标来执行。当然,也可以通过“开始”菜单中相应命令启动。

退出matlab时,也可以像退出其它windows程序一样操作,也可以在命令窗口中键入quit或exit来退出。

2.菜单和工具栏

Matlab的菜单和工具界面与windows程序的界面类似,用户只要稍加实践就可以掌握其功能和使用方法。菜单的内容会随着在命令窗口执行不同命令而作出相应改变。

3.命令窗口

命令窗口是matlab的主要交互窗口,用于输入命令并显示除图形以外的所有执行结果。Matlab命令窗口中的“>>”为运算提示符,表示matlab处于准备状态。当在提示符后输入一段程序或一段运算式后按“回车”键,matlab会给出计算结果,并再次进入准备状态。单击命令窗口右上角的箭头按钮可以使命令窗口脱离主窗口而成为一个独立的窗口。

常用控制命令及其功能:

clc:清除命令窗口中的内容

clear:清除工作空间中的变量

clf:清除图形窗

type :显示指定的M文件的内容

exit/quit:结束matlab会话,程序完成,如果没有明确保存,则变量中的数据丢失

help :获取在线帮助

4.历史命令窗口

该窗口主要用于记录所有执行过的命令,在默认设置下,该窗口会保留自安装后所有使用过命令的历史记录,并标明使用时间。同时,用户可以通过用鼠标双击某一历史命令来重新执行该命令。与命令窗口类似,该窗口也可以成为一个独立的窗口。

选中该窗口,然后单击鼠标右键,弹出一个菜单,用户可以通过此菜单删除或粘贴历史记录,也可以为选中的表达式或命令创建一个M文件。

5.当前工作目录窗口

当前工作目录是指matlab运行文件时的目录。只有在当前工作目录或搜索路径下的文件、函数可以被运行或调用。在窗口中可显示或改变当前工作目录,还可以显示当前工作目录下的文件。

6.工作空间窗口

在工作空间窗口中将显示目前内存中所有的matlab变量的变量名、数据结构、字节数以及类型等信息。

第2章基本运算与函数

在MATLAB下进行基本数学运算,只需将运算式直接打入提示号(>>)之后,并按入Enter键即可。例如:

>> (5*2+1.3-0.8)*10/25

ans =4.2000

又如:

求10的阶乘

>> factorial(10)

求15

C可用

30

>> nchoosek(30,15)

MATLAB会将运算结果直接存入一变量ans,代表MATLAB运算后的答案(Answer)并显示其数值于屏幕上。

我们也可将上述运算式的结果设定给另一个变量x:

x = (5*2+1.3-0.8)*10^2/25

x = 42

此时MATLAB会直接显示x的值。

由上例可知,MATLAB认识所有一般常用到的加(+)、减(-)、乘(*)、除(/)的数学运算符号,以及幂次运算(^)。

若不想让MATLAB每次都显示运算结果,只需在运算式最后加上分号(;)即可,如下例:

y = sin(10)*exp(-0.3*4^2);

若要显示变量y的值,直接键入y即可:

>>y

y =-0.0045

在上例中,sin是正弦函数,exp是指数函数,这些都是MATLAB常用到的数学函数,函数里的参数必须用圆括号括起来。

1.三角函数

pi:常数

2.指数和对数函数

3.复数函数

第3章数组、矩阵及其运算

数组或矩阵是matlab最基础的内容之一,几乎所有的数据都是用数组的形式存储的,这就是matlab又被称为矩阵实验室的原因。

3.1 向量的创建

3.1.1 一维数组(向量)的创建

一维数组(向量)创建有直接输入法、步长生成法、定数线性采样法和定数对数采样法等。

1.直接输入法

(1)使用分号”;”创建一维列向量

>> x1=[pi;log10(100);7*2;2^3]

x1 =

3.1416

2.0000

14.0000

8.0000

(2)使用空格或逗号,创建一维行数组

>> x2=[pi log10(100) 7*2 2^3]

x2 =

3.1416 2.0000 1

4.0000 8.0000

2.步长生成法

采用通用格式a:step:b。其中a表示数组的第一个元素;step表示数组的间隔,即步长;b表示数组的最后一个元素。如果省略step,默认值为1。

>> x3=1:2:10

x3 =

1 3 5 7 9

3.定数线性采样法

在设定了总个数的条件下,均匀采样分布生成一维行向量。

采用通用格式: linspace(a,b,n)

其中a,b分别是数组的第一个和最后一个元素,n表示采样点数。

例如:

>> x=linspace(1,10,5)

x =

4.定数对数采样法

在设定了总个数的条件下,通过“常用对数”采样分布生成一维行向量。采用通用格式: logspace(a,b,n)

其中a,b分别是数组的第一个和最后一个元素,n表示采样点数。

3.1.2 一维向量元素寻访和赋值

1.子向量的寻访

>> x=linspace(1,10,5) %定义向量

x =

1.0000 3.2500 5.5000 7.7500 10.0000

>> x(2) %查看向量第二个元素

ans =

3.2500

>> x([1 3 5]) %查看向量第一、三、五个元素组成的子向量ans =

1.0000 5.5000 10.0000

>> x(3:5) %查看向量第三到第五个元素组成的子向量ans =

5.5000 7.7500 10.0000

>> x(find(x>6)) %查看大于6的元素组成的子向量

ans =

7.7500 10.0000

2.子向量的赋值

>> x(2)=5

x =

>> x(4) = [] % 删除第四个元素

MATLAB亦可取出向量的一个元素或一部份来做运算:

y=x(2)*3+x(4) % 取出x的第二个元素3倍后和x的第四个元素来相加,最后赋给变量y。

3.2 矩阵的创建

3.2.1 矩阵的创建

1.采用直接输入法创建矩阵

采用矩阵构造符“[]”。将各元素依次输入构造符[]内,并且以空格或者逗号分隔,行与行之间用分号分隔。

例:构造一个2*3矩阵,第一行各元素依次为1,2,3,第二行各元素依次为4,5,6。

>> A=[1 2 3;4 5 6]

A =

1 2 3

4 5 6

2.利用内部函数创建矩阵

1)零矩阵

命令:zeros(i,j)可以创建i行j列的全零矩阵。

2)全1矩阵

命令:ones(i,j)可以创建i行j列的全1矩阵

3)对角线为1的矩阵

命令:eye(i,j)可以创建i行j列的对角线为1的矩阵。当然,如果想创建单位矩阵,只需要用命令eye(i)即可。

4)randn(n) n阶随机矩阵,元素服从正态分布

5)rand(n) 产生0-1均匀分布的随机数矩阵

6)magic(n) n阶魔方矩阵

3.2.2 矩阵的寻访和赋值

用冒号访问矩阵时:A(i,j)表示A中的第i行第j列所在位置的元素;A

(:,j)表示A的第j列;A(i,:)表示A的第i行;A(i:j)表示A中的第i个元素到第j个元素;A(:,i:j)表示第i列到第j 列;A(i:j,:)表示第i 行到第j行;A([I J],:)表示第i、j两行。

>> A = [1 2 3 4; 5 6 7 8; 9 10 11 12]

A =

1 2 3 4

5 6 7 8

9 10 11 12

>> A(2,3) = 5 % 改变位于第二行,第三列的元素值

A =

1 2 3 4

5 6 5 8

9 10 11 12

>> B = A(2,1:3) % 取出部份矩阵B

B =

5 6 5

>> A = [A B'] % 将B转置后以列向量并入A

A =

1 2 3 4 5

5 6 5 8 6

9 10 11 12 5

>> A(:, 2) = [] % 删除第二列(:代表所有行)

A =

1 3 4 5

5 5 8 6

9 11 12 5

>> A = [A; 4 3 2 1] % 加入第四行

A =

1 3 4 5

5 5 8 6

9 11 12 5

4 3 2 1

>> A([1 4], :) = [] % 删除第一和第四行(:代表所有列)

A =

5 5 8 6

9 11 12 5

3.3 向量与矩阵的运算

3.3.1 向量与矩阵的代数运算

例如:

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

A =

1 2 3 4 5 6 7 8 9 B =

9 8 7 6 5 4 3 2 1 >> A-5 ans =

-4 -3 -2 -1 0 1 2 3 4 >> 3-A ans =

2 1 0 -1 -2 -

3 -

4 -

5 -

6 >> 72./A ans =

72.0000 36.0000 24.0000 18.0000 14.4000 12.0000 10.2857 9.0000 8.0000 例2:求解以下方程组

1212

10

4x x x x +=??

-=? >> A=[1 1;1 -1]; >> B=[10 4]; >> X=A\B

3.3.2 向量与矩阵的关系运算

例如:

>> magic(3)>4*ones(3)

ans =

1 0 1

0 1 1

0 1 0

3.3.3 矩阵的运算

1.矩阵的转置与逆

矩阵的转置运算符:“’”。

求解矩阵的逆矩阵的命令格式为:y=inv(x) 要求矩阵x有逆矩阵

>> A=[1 1;2 1]

A =

1 1

2 1

> B=inv(A)

B =

-1 1

2 -1

>> A*B

ans =

1 0

0 1

2.方阵的行列式

命令格式:d=det(x)

>> A=[1 1;2 1]

A =

1 1

2 1

>> det(A)

ans =

-1

3.矩阵的秩

命令格式:k=rank(A)

4.矩阵的迹

矩阵对角线元素之和称为迹,求矩阵的迹的命令格式为:B=trace(A)

5.矩阵的特征值和特征向量

命令格式:[V,D]=eig(A)

例:求矩阵A =

-2 1 1

0 2 0

-4 1 3

的特征值和特征向量

解:>> A=[-2 1 1;0 2 0;-4 1 3]

A =

-2 1 1

0 2 0

-4 1 3

>> [V,D]=eig(A)

V =

-0.7071 -0.2425 0.3015

0 0 0.9045

-0.7071 -0.9701 0.3015

(注意这里对应的特征向量是列向量)

D =

-1 0 0

0 2 0

0 0 2

6.向量的常用函数

min(x): 向量x的元素的最小值

max(x): 向量x的元素的最大值

mean(x): 向量x的元素的平均值

median(x): 向量x的元素的中位数

std(x): 向量x的元素的标准差

diff(x): 向量x的相邻元素的差

sort(x): 对向量x的元素进行排序

length(x): 向量x的元素个数

sum(x): 向量x的元素总和

prod(x): 向量x的元素总乘积

dot(x, y): 向量x和y的内积

第4章 Matlab程序设计基础

Matlab作为一种广泛应用于科学计算的工具软件,不仅提供丰富的函数库,还可以像其它高级语言程序设计一样进行程序设计,编写扩展名为.m的M文件,实现各种程序设计功能。由于matlab是由C语言开发现来的,因些M文件的语法规则与C语言几乎一致,简单易学。

4.1 M文件基础

M文件可再细分为脚本(Scripts)及函数(Functions)两类,二者相同之处是它们都是以.m作为扩展名的文本文件,但二者的语法和使用上略有不同。

脚本其效用和将命令逐一输入完全一样,而函数在使用有严格要求。

4.1.1 M文件的创建

当需要创建一个M文件时,可以通过file|new|M-file菜单进入文本编辑器界面,并打开一空白文档,进而可以编辑和编译运行它的内容。

4.1.2 自定义函数

自定义函数M文件的第一行有特殊的要求,其必须遵循如下的形式:

function <因变量>=<函数名>(<自变量>)

其他的各行为程序运行语句,没有特殊要求。但这个M文件的文件名必须是<函数名>.m

例1、编写一个函数文件,计算n!

可以编写阶乘计算函数njc(n):

function y=njc(x)

y=1; k=1;

while k<=x

y=y*k;

k=k+1;

end

自定义函数定义好后就可以调用,调用格式为:函数名(参数表)。

例2、利用例1编写的函数计算4!,10!,在命令窗口执行该函数,马上得到结果:

>> njc(4)

ans =

24

4.2 matlab程序控制结构

matlab语言的程序结构与其它高级语言是一致的,分为顺序结构,循环结构,分支结构。

(1)顺序结构——依次顺序执行程序的各条语句

(2)循环结构——被重复执行的一组语句,循环是计算机解决问题的主要

手段。

(3)分支结构——根据一定条件来选择执行各条语句。

4.2.1 循环语句

1.for — end循环

语法为:

for i = 表达式(表达式为一个向量)

可执行语句

end

例:利用for循环求1+2+3+4+5的值

sum=0;

for i=1:5

sum=sum+i;

end

2.while — end 循环

while循环将循环体中的语句循环执行不定次数。

语法为:

while 表达式

循环体语句

end

表达式一般是由逻辑运算和关系运算以及一般运算组成的,以判断循环的进行和停止;只要表达式的值非0,继续循环;直到表达式值为0,循环停止。

例:用while循环求1到100间整数的和

sum=0;

i=1;

while i<=100

sum=sum+i;

i=i+1;

end

sum

4.2.2分支结构

1.if-else-end结构

有三种格式

A)if 表达式

执行语句

end

B)if 表达式

语句1

else

语句2

end

C)if 表达式1

语句1

elseif 表达式2

语句2

elseif 表达式3

语句3

·

·

·

else

语句n

end

例如,从键盘中输入一个正数,然后判断是奇数(odd number)还是偶数(even number)。

s=input('please input positive integer:')

if mod(s,2)==0

‘This is a even number!’

else

‘This is a odd number!’

end

2.switch分支结构

switch语句可以替代多分支的if语句,且switch语句简洁明了,可读性更好,其格式为:

switch 计算表达式

case 数值1

语句1

case 数值2

语句2

otherwise

语句n

End

例:用switch结构将百分制的学生成绩转换为五种等级的成绩输出

clear

result=input('请输入学生的成绩:');

switch fix(result/10)

case 9

y='优秀';

case 8

y='良好';

case 7

y='中等';

case 6

y='及格';

otherwise

y='不及格';

end

y

第5章 matlab求解数学问题

5.1 符号表达式的生成

在数学分析中,常常需要做极限、微分、求导数等运算,MATLAB称这些运算为符号运算。MATLAB的符号运算功能是通过调用符号运算工具箱(Symbolic MathToolbox)内的工具实现,其内核是借用Maple数学软件。MATLAB的符号运算上具箱包含了微积分运算、化简和代换、解方程等几个方面的工具。

MATLAB符号运算工具箱处理的对象主要是符号变量与符号表达式。要实现其符号运算,首先需要将处理对象定义为符号变量或符号表达式,其定义格式如下:

格式1: sym(‘变量名’)或sym(‘表达式’)

功能:定义一个符号变量或符号表达式。

例如:

>>sym(‘x‘)%定义变量x为符号变量

>>sym(‘x+1')%定义表达式x+1为符号表达式

格式2: syms变量名1 变量名2 ……变量名n

功能:定义变量名1、变量2……、变量名n为符号变量。

注意是变量名之间要用空格或分号隔开

5.2 符号方程的求解

1.方程的解

命令格式

X=solve(‘eqn’) %直接求出方程eqn的根

matlab入门经典范例

num1=[13]; den1=conv([1,1],[1,0]); G1=tf(num1,den1); num2=[5.096,13]; ssys1=conv([1,1],[1,0]); ssys2=conv([0.098,1],[1]); den2=conv( ssys1,ssys2); G2=tf(num2,den2); figure(1) margin(G1); hold on margin(G2); num1=[13]; den1=conv([1,1],[1,0]); G1=tf(num1,den1); num2=[5.096,13]; ssys1=conv([1,1],[1,0]); ssys2=conv([0.098,1],[1]); den2=conv( ssys1,ssys2); G2=tf(num2,den2); figure(1) margin(G1); hold on margin(G2); num=[4.56,10]; ssys1=conv([1,1],[1,0]); ssys2=conv([0.114,1],[1]); den=conv( ssys1,ssys2); G=tf(num,den); figure(1) bode(G) num=[4.56,10]; ssys1=conv([1,1],[1,0]); ssys2=conv([0.114,1],[1]); den=conv( ssys1,ssys2); G=tf(num,den); figure(1) msrgin(G); num1=[13]; den1=conv([1,1],[1,0]);

matlab入门教程

MATLAB入门教程 1.MATLAB的基本知识 1-1、基本运算与函数 在MATLAB下进行基本数学运算,只需将运算式直接打入提示号(>>)之後,并按入Enter键即可。例如: >> (5*2+1.3-0.8)*10/25 ans =4.2000 MATLAB会将运算结果直接存入一变数ans,代表MATLAB运算後的答案(Answer)并显示其数值於萤幕上。 小提示: ">>"是MATLAB的提示符号(Prompt),但在PC中文视窗系统下,由於编码方式不同,此提示符号常会消失不见,但这并不会影响到MATLAB的运算结果。 我们也可将上述运算式的结果设定给另一个变数x: x = (5*2+1.3-0.8)*10^2/25 x = 42 此时MATLAB会直接显示x的值。由上例可知,MATLAB认识所有一般常用到的加(+)、减(-)、乘(*)、除(/)的数学运算符号,以及幂次运算(^)。 小提示:MATLAB将所有变数均存成double的形式,所以不需经过变数宣告(Variable declaration)。MATLAB同时也会自动进行记忆体的使用和回收,而不必像C语言,必须由使用者一一指定.这些功能使的MATLAB易学易用,使用者可专心致力於撰写程式,而不必被软体枝节问题所干扰。 若不想让MATLAB每次都显示运算结果,只需在运算式最後加上分号(;)即可,如下例: y = sin(10)*exp(-0.3*4^2); 若要显示变数y的值,直接键入y即可: >>y y =-0.0045 在上例中,sin是正弦函数,exp是指数函数,这些都是MATLAB常用到的数学函数。 下表即为MATLAB常用的基本数学函数及三角函数: 小整理:MATLAB常用的基本数学函数 abs(x):纯量的绝对值或向量的长度 angle(z):复数z的相角(Phase angle)

Matlab基础教程

1-1、基本运算与函数 在MATLAB下进行基本数学运算,只需将运算式直接打入提示号(>>)之後,并按入Enter键即可。例如: >> (5*2+1.3-0.8)*10/25 ans =4.2000 MATLAB会将运算结果直接存入一变数ans,代表MATLAB运算後的答案(Answer)并显示其数值於萤幕上。 小提示: ">>"是MATLAB的提示符号(Prompt),但在PC中文视窗系统下,由於编码方式不同,此提示符号常会消失不见,但这并不会影响到MATLAB的运算结果。 我们也可将上述运算式的结果设定给另一个变数x: x = (5*2+1.3-0.8)*10^2/25 x = 42 此时MATLAB会直接显示x的值。由上例可知,MATLAB认识所有一般常用到的加(+)、减(-)、乘(*)、除(/)的数学运算符号,以及幂次运算(^)。 小提示: MATLAB将所有变数均存成double的形式,所以不需经过变数宣告(Variable declaration)。MATLAB同时也会自动进行记忆体的使用和回收,而不必像C语言,必须由使用者一一指定.这些功能使的MATLAB易学易用,使用者可专心致力於撰写程式,而不必被软体枝节问题所干扰。 若不想让MATLAB每次都显示运算结果,只需在运算式最後加上分号(;)即可,如下例: y = sin(10)*exp(-0.3*4^2);

若要显示变数y的值,直接键入y即可: >>y y =-0.0045 在上例中,sin是正弦函数,exp是指数函数,这些都是MATLAB常用到的数学函数。 下表即为MATLAB常用的基本数学函数及三角函数: 小整理:MATLAB常用的基本数学函数 abs(x):纯量的绝对值或向量的长度 angle(z):复数z的相角(Phase angle) sqrt(x):开平方 real(z):复数z的实部 imag(z):复数z的虚部 conj(z):复数z的共轭复数 round(x):四舍五入至最近整数 fix(x):无论正负,舍去小数至最近整数 floor(x):地板函数,即舍去正小数至最近整数 ceil(x):天花板函数,即加入正小数至最近整数 rat(x):将实数x化为分数表示 rats(x):将实数x化为多项分数展开

Matlab2012教程--经典教程

第1章基础准备及入门 1.1 最简单的计算器使用法 为易于学习,本节以算例方式叙述,并通过算例归纳一些MATLAB最基本的规则和语 法结构。建议读者,在深入学习之前,先读一读本节。 2 【例1.3-1】求[122(74)]3的算术运算结果。本例演示:最初步的指令输入形式 和必需的操作步骤。 (1)用键盘在MA TLAB指令窗中输入以下内容 >> (12+2*(7-4))/3^2 (2)在上述表达式输入完成后,按[Enter] 键,该指令被执行,并显示如下结果。 ans = 2 〖说明〗 本例在指令窗中实际运行的情况参见图 1.3-1。 指令行“头首”的“>>”是“指令输入提示符”,它是自动生成的。本书在此后的输入指令前将不再带提示符“>>”。理由是:(A)为使本书简洁;(B)本书用MATLAB 的M-book写成,而在M-book中运行的指令前是没有提示符的。 5

MATLAB的运算符(如+、- 等)都是各种计算程序中常见的习惯符号。 一条指令输入结束后,必须按[Enter] 键,那指令才被执行。 由于本例输入指令是“不含赋值号的表达式”,所以计算结果被赋给MATLAB的一个默认变量“ans”。它是英文“answer”的缩写。 【例1.3-2】“续行输入”法。本例演示:或由于指令太长,或出于某种需要,输入指令行必 须多行书写时,该如何处理。 S=1-1/2+1/3-1/4+ ... 1/5-1/6+1/7-1/8 S = 0.6345 〖说明〗 MA TLAB用3个或3个以上的连续黑点表示“续行”,即表示下一行是上一行的继续。 本例指令中包含“赋值号”,因此表达式的计算结果被赋给了变量S。 指令执行后,变量S被保存在MA TLAB 的工作空间(Workspace)中,以备后用。如果用户不用clear 指令清除它,或对它重新赋值,那么该变量会一直保存在工作空间中, 直到本MATLAB 指令窗被关闭为止。 1.3.3数值、变量和表达式 前节算例只是表演了“计算器”功能,那仅是MA TLAB全部功能中小小一角。为深入 学习MA TLAB,有必要系统介绍一些基本规定。本节先介绍关于变量的若干规定。 一数值的记述 MATLAB的数值采用习惯的十进制表示,可以带小数点或负号。以下记述都合法。 3 -99 0.001 9.456 1.3e-3 4.5e33 在采用IEEE浮点算法的计算机上,数值通常采用“占用64位内存的双精度”表示。 其相对精度是eps (MATLAB的一个预定义变量),大约保持有效数字16位。数值范围大308308 致从10到10。 二变量命名规则 变量名、函数名是对字母大小写敏感的。如变量myvar和MyVar表示两个不同的变量。 sin是MATLAB定义的正弦函数名,但SIN,Sin等都不是。 变量名的第一个字符必须是英文字母,最多可包含63个字符(英文、数字和下连符)。 如myvar201是合法的变量名。 变量名中不得包含空格、标点、运算符,但可以包含下连符。如变量名my_var_201是合法的,且读起来更方便。而my,var201由于逗号的分隔,表示的就不是一个变量名。 6

MATLAB基础及应用教程

第4章程序设计 在前面我们已经看到,MATLAB不但可以在命令窗直接输入命令并运行,而且还可以生成自己的程序文件,这就是我们通常说的一类以M为后缀的M文件,本章我们就来研究这类文件的形成方法。 M文件可分分为两大类,一是命令式M文件(也称为脚本文件,script),二是函数式M 文件(function)。两类文件的区别在于: (1)命令式文件可以直接运行,函数式文件不能直接运行,只能调用。 (2)命令式文件运行时没有输入输出参量,函数式文件在调用时需要进行输入输出参量设置。 (3)命令式文件运行中可以调用工作空间的数据,运行中产生的所有变量为全局变量。 (4)函数式文件不能调用工作空间的数据,运行中产生的所有变量为局部变量。命令式文件运行中产生的所有变量为全局变量,可以调用和存储到工作空间的数据。 4.1 MATLAB的程序文件-M文件 4.1.1 脚本文件(Scripts) 当我们需要在命令窗进行大量的命令集合运行时,直接从命令窗口输入比较麻烦,这时就可以将这些命令集合存放在一个脚本文件(Scripts)中,运行时只需要输入其文件名就可以自动执行这些命令集合。需要注意的是,脚本文件运行所产生的变量都驻留在MATLAB 的工作空间中,同时脚本文件也可以调用工作空间中的数据。因此,脚本文件所涉及的变量是全局变量。前几章所涉及到的M文件都是这类脚本文件。 编辑一个脚本文件可以直接在命令窗口的左上角打开编辑窗进行编辑。 4.1.2 函数文件(function) 函数式文件(function)的构成 (1)函数定义行: Function [输出参量]=gauss(输入参量) (2): 完成函数的功能。 (3)函数说明。 (4)函数行注。 从上面构成的情况看,函数式文件实际上是完成输入参量与输出参量的转换,这样的转换是由函数文件名为gauss的文件来完成的。函数体的功能必须说明清楚输入参量与输出参量的关系。函数说明是用来解释该函数的功能的,函数行注是对程序行进行说明的。上面(1)和(2)是必须的。 【例4-1】分析下面函数文件。 %一个数列,任意项等于前两项之和,输入项数可以给出这个数列

(完整word版)matlab_gui初学者教程

什么是GUI呢? GUI是Graphical User Interface 图形用户界面的意思。象很多高级编程语言一样。Matlab也有图形用户界面开发环境。随着计算机技术的飞速发展。人与计算机的通信方式也发生的很大的变化。从原来的命令行通讯方式(例如很早的DOS系统)变化到了现在的图形界面下的交互方式。而现在绝大多数的应用程序都是在图形化用户界面下运行的。 记得读书的时候。大学开学不久。学校很多同学就开始报考全国计算机等级考试了。当然我也是其中的一分子。其中C语言是大多数人选择的科目。当时在学C语言的时候。经常也会遇到人机交互的例子。譬如一个计算两个数相加的程序。运行程序后便切换到了Dos模式。然后在此模式下输入两个数。再回车。才能返回运算结果。当时就觉得很不方便。也不友好。后来才得知C语言是面向过程的语言。是非面向对象的语言(VC++,VB,Matlab等是面向对象的)。那么下面我们就来看看Matlab是如何简单、快速而友好地解决这类问题的吧。 Matlab GUI编程教程(适用于初学者) 1.首先我们新建一个GUI文件:File/New/GUI 如下图所示; 选择Blank GUI(Default) 2.进入GUI开发环境以后添加两个编辑文本框。6个静态文本框。和一个按钮。布置如下图所示;

布置好各控件以后。我们就可以来为这些控件编写程序来实现两数相加的功能了。3.我们先为数据1文本框添加代码; 点击上图所示红色方框。选择edit1_Callback。光标便立刻移到下面这段代码的位置。function edit1_Callback(hObject, eventdata, handles) % hObject handle to edit1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit1 as text % str2double(get(hObject,'String')) returns contents of edit1 as a double 然后在上面这段代码的下面插入如下代码: %以字符串的形式来存储数据文本框1的内容. 如果字符串不是数字。 则现实空白内容 input = str2num(get(hObject,'String')); %检查输入是否为空. 如果为空,则默认显示为0 if(isempty(input)) set(hObject,'String','0')

matlab入门经典教程--第四章 数值计算

第四章数值计算 4.1引言 本章将花较大的篇幅讨论若干常见数值计算问题:线性分析、一元和多元函数分析、微积分、数据分析、以及常微分方程(初值和边值问题)求解等。但与一般数值计算教科书不同,本章的讨论重点是:如何利用现有的世界顶级数值计算资源MATLAB。至于数学描述,本章将遵循“最低限度自封闭”的原则处理,以最简明的方式阐述理论数学、数值数学和MATLAB计算指令之间的在联系及区别。 对于那些熟悉其他高级语言(如FORTRAN,Pascal,C++)的读者来说,通过本章,MATLAB 卓越的数组处理能力、浩瀚而灵活的M函数指令、丰富而友善的图形显示指令将使他们体验到解题视野的豁然开朗,感受到摆脱烦琐编程后的眉眼舒展。 对于那些经过大学基本数学教程的读者来说,通过本章,MATLAB精良完善的计算指令,自然易读的程序将使他们感悟“教程”数学的基础地位和局限性,看到从“理想化”简单算例通向科学研究和工程设计实际问题的一条途径。 对于那些熟悉MATLAB基本指令的读者来说,通过本章,围绕基本数值问题展开的容将使他们体会到各别指令的运用场合和在关系,获得综合运用不同指令解决具体问题的思路和借鉴。 由于MATLAB的基本运算单元是数组,所以本章容将从矩阵分析、线性代数的数值计算开始。然后再介绍函数零点、极值的求取,数值微积分,数理统计和分析,拟合和插值,Fourier分析,和一般常微分方程初值、边值问题。本章的最后讨论稀疏矩阵的处理,因为这只有在大型问题中,才须特别处理。 从总体上讲,本章各节之间没有依从关系,即读者没有必要从头到尾系统阅读本章容。读者完全可以根据需要阅读有关节次。除特别说明外,每节中的例题指令是独立完整的,因此读者可以很容易地在自己机器上实践。 MATLAB从5.3版升级到6.x版后,本章容的变化如下: ●MATLAB从6.0版起,其矩阵和特征值计算指令不再以LINPACK和EISPACK库为基础, 而建筑在计算速度更快、运行更可靠的LAPACK和ARPACK程序库的新基础上。因此,虽然各种矩阵计算指令没有变化,但计算结果却可能有某些不同。这尤其突出地表现在涉及矩阵分解、特征向量、奇异向量等的计算结果上。对此,用户不必诧异,因为构成空间的基向量时不唯一的,且新版的更可信。本书新版全部算例结果是在6.x版上给出的。 ●在5.3版本中,泛函指令对被处理函数的调用是借助函数名字符串进行的。这种调用 方式在6.x版中已被宣布为“过渡期允许使用但即将被淘汰的调用方式”;而新的调用方式是借助“函数句柄”进行的。因此,关于述泛函指令,本章新版着重讲述如何使用“函数句柄”,同时兼顾“函数名字符串”调用法。 ●MATLAB从6.0版起,提供了一组专门求微分方程“边值问题”数值解的指令。适应这 种变化,本章新增第4.14.5节,用2个算例阐述求解细节。 ● 5.3版中的积分指令quad8已经废止;6.x版启用新积分指令quad l;6.5版新增三重 积分指令triplequad。本章新版对此作了相应的改变。 4.2LU分解和恰定方程组的解

相关主题
文本预览
相关文档 最新文档