文档库 最新最全的文档下载
当前位置:文档库 › MATLAB 中的常用操作符

MATLAB 中的常用操作符

MATLAB 中的常用操作符
MATLAB 中的常用操作符

MATLAB 中的常用操作符

其实这些是MATLAB 帮助文件中的内容,

可以实用help 命令知道的。

Arithmetic operators.

plus - Plus +

uplus - Unary plus +

minus - Minus -

uminus - Unary minus -

mtimes - Matrix multiply *

times - Array multiply .*

mpower - Matrix power ^

power - Array power .^

mldivide - Backslash or left matrix divide \ mrdivide - Slash or right matrix divide / ldivide - Left array divide .\

rdivide - Right array divide ./

kron - Kronecker tensor product kron Relational operators.

eq - Equal ==

ne - Not equal ~=

lt - Less than <

gt - Greater than >

le - Less than or equal <=

ge - Greater than or equal >=

Logical operators.

Short-circuit logical AND &&

Short-circuit logical OR ||

and - Element-wise logical AND &

or - Element-wise logical OR |

not - Logical NOT ~

xor - Logical EXCLUSIVE OR

any - True if any element of vector is nonzero all - True if all elements of vector are nonzero Special characters.

colon - Colon :

paren - Parentheses and subscripting ( ) paren - Brackets [ ]

paren - Braces and subscripting { }

punct - Function handle creation @

punct - Decimal point .

punct - Structure field access .

punct - Parent directory ..

punct - Continuation ...

punct - Separator ,

punct - Semicolon ;

punct - Comment %

punct - Invoke operating system command ! punct - Assignment =

punct - Quote '

transpose - Transpose .'

ctranspose - Complex conjugate transpose ' horzcat - Horizontal concatenation [,]

vertcat - Vertical concatenation [;] subsasgn - Subscripted assignment ( ),{ },. subsref - Subscripted reference ( ),{ },. subsindex - Subscript index

Bitwise operators.

bitand - Bit-wise AND.

bitcmp - Complement bits.

bitor - Bit-wise OR.

bitmax - Maximum floating point integer.

bitxor - Bit-wise XOR.

bitset - Set bit.

bitget - Get bit.

bitshift - Bit-wise shift.

Set operators.

union - Set union.

unique - Set unique.

intersect - Set intersection.

setdiff - Set difference.

setxor - Set exclusive -or.

ismember - True for set member

MATLAB 程式设计与应用

张智星

1-1、基本运算与函数

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

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

ans =

4.2000

MATLAB 会将运算结果直接存入一变数ans,代表MATLAB 运算後的答案(Answer),并显示其数值於萤幕上。(为简便起见,在下述各例中,我们不再印出MATLAB 的提示号。)===============================================

小提示:

">>"是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 化为多项分数展开

sign(x):符号函数(Signum function)。

当x<0 时,sign(x)=-1;

当x=0 时,sign(x)=0;

当x>0 时,sign(x)=1。

rem(x,y):求x 除以y 的馀数

gcd(x,y):整数x 和y 的最大公因数

lcm(x,y):整数x 和y 的最小公倍数

exp(x):自然指数

pow2(x):2 的指数

log(x):以e 为底的对数,即自然对数或

log2(x):以2 为底的对数

log10(x):以10 为底的对数

===============================================

小整理:MATLAB 常用的三角函数

sin(x):正弦函数

cos(x):馀弦函数

tan(x):正切函数

asin(x):反正弦函数

acos(x):反馀弦函数

atan(x):反正切函数

atan2(x,y):四象限的反正切函数

sinh(x):超越正弦函数

cosh(x):超越馀弦函数

tanh(x):超越正切函数

asinh(x):反超越正弦函数

acosh(x):反超越馀弦函数

atanh(x):反超越正切函数

===============================================

变数也可用来存放向量或矩阵,并进行各种运算,如下例的列向量(Row vector)运算:x = [1 3 5 2];

y = 2*x+1

y =

3 7 11 5

===============================================

小提示:变数命名的规则

1.第一个字母必须是英文字母

2.字母间不可留空格

3.最多只能有19 个字母,MATLAB 会忽略多馀字母

===============================================

我们可以随意更改、增加或删除向量的元素:

y(3) = 2 % 更改第三个元素

y =

3 7 2 5

y(6) = 10 % 加入第六个元素

y =

3 7 2 5 0 10

y(4) = [] % 删除第四个元素,

y =

3 7 2 0 10

在上例中,MATLAB 会忽略所有在百分比符号(%)之後的文字,因此百分比之後的文字

均可视为程式的注解(Comments)。MATLAB 亦可取出向量的一个元素或一部份来做运算:x(2)*3+y(4) % 取出x 的第二个元素和y 的第四个元素来做运算

ans =

9

y(2:4)-1 % 取出y 的第二至第四个元素来做运算

ans =

6 1 -1

在上例中,2:4 代表一个由2、3、4 组成的向量,同样的方法可用於产生公

差为1 的等差数列:

x = 7:16

x =

7 8 9 10 11 12 13 14 15 16

若不希望公差为1,则可将所需公差直接至於4 与13 之间:

x = 7:3:16 % 公差为3 的等差数列

x =

7 10 13 16

事实上,我们可利用linspace 来产生任意的等差数列:

x = linspace(4, 10, 6) % 等差数列:首项为4,末项为10,项数为6

x =

4.0000

5.2000

6.4000

7.6000

8.8000 10.0000

若对MATLAB 函数用法有疑问,可随时使用help 来寻求线上支援(on-line

help):

help linspace

LINSPACE Linearly spaced vector.

LINSPACE(x1, x2) generates a row vector of 100 linearly

equally spaced points between x1 and x2.

LINSPACE(x1, x2, N) generates N points between x1 and x2.

equally spaced points between x1 and x2.

LINSPACE(x1, x2, N) generates N points between x1 and x2.

See also LOGSPACE, :.

====================================================

小整理:MATLAB 的查询命令

help:用来查询已知命令的用法。例如已知inv 是用来计算反矩阵,键入help inv 即可得知

有关inv 命令的用法。(键入help help 则显示help 的用法,请试看看!)

lookfor:用来寻找未知的命令。例如要寻找计算反矩阵的命令,可键入lookfor inverse,

MATLAB 即会列出所有和关键字inverse 相关的指令。找到所需的命令後,即可用help 进一步找出其用法。(lookfor 事实上是对所有在搜寻路径下的M 档案进行关键字对第一注解行的比对,详见後叙。)

======================================================

Matlab 入门教程--基本运算与函数(二)

将列向量转置(Transpose)後,即可得到行向量(Column vector):

z = x'

z =

4.0000

5.2000

6.4000

7.6000

8.8000

10.0000

不论是行向量或列向量,我们均可用相同的函数找出其元素个数、最大

值、最小值等:

length(z) % z 的元素个数

ans =

6

max(z) % z 的最大值

ans =

10

min(z) % z 的最小值

ans =

4

===============================================

小整理:适用於向量的常用函数有:

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

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

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

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

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

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

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

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

norm(x): 向量x 的欧氏(Euclidean)长度

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

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

cumsum(x): 向量x 的累计元素总和

cumprod(x): 向量x 的累计元素总乘积

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

cross(x, y): 向量x 和y 的外积

(大部份的向量函数也可适用於矩阵,详见下述。)

若要输入矩阵,则必须在每一列结尾加上分号(;),如下例:

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

A

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

这几种矩阵处理的方式可以相互叠代运用,产生各种意想不到的效果,就

看各位的巧思和创意。

小提示:

在MATLAB 的内部资料结构中,每一个矩阵都是一个以行为主

(Column-oriented)的阵列(Array)因此对於矩阵元素的存取,我们可

用一维或二维的索引(Index)来定址。举例来说,在上述矩阵A 中,位於第二列、第三行的元素可写为A(2,3)

(二维索引)或A(6)(一维索引,即将所有直行进行堆叠後的第六个元素)。

此外,若要重新安排矩阵的形状,可用reshape 命令:

B = reshape(A, 4, 2) % 4 是新矩阵的列数,2 是新矩阵的行数

B =

5 8

9 12

5 6

11 5

小提示:

A(:)就是将矩阵A 每一列堆叠起来,成为一个行向量,而这也是MATLAB 变数的内部储存方式。以前例而言,reshape(A,

8, 1)和A(:)同样都会产生一个8x1 的矩阵。。

MATLAB 可在同时执行数个命令,只要以逗号或分号将命令隔开:

x = sin(pi/3); y = x^2; z = y*10,

z =

7.5000

若一个数学运算是太长,可用三个句点将其延伸到下一行:

z = 10*sin(pi/3)* ...

sin(pi/3);

若要检视现存於工作空间(Workspace)的变数,可键入who:

who

Your variables are:

testfile x

这些是由使用者定义的变数。若要知道这些变数的详细资料,可键入:whos

Name Size Bytes Class

A 2x4 64 double array

B 4x2 64 double array

ans 1x1 8 double array

x 1x1 8 double array

y 1x1 8 double array

z 1x1 8 double array

Grand total is 20 elements using 160 bytes

使用clear 可以删除工作空间的变数:

clear A

A

??? Undefined function or variable 'A'.

另外MATLAB 有些永久常数(Permanent constants),虽然在工作空间中看不

到,但使用者可直接取用,例如:

pi

ans =

3.1416

===============================================

下表即为MATLAB 常用到的永久常数。

小整理:MATLAB 的永久常数

i 或j:基本虚数单位(即)

eps:系统的浮点(Floating-point)精确度

inf:无限大,例如1/0

nan 或NaN:非数值(Not a number),例如0/0

pi:圆周率p(= 3.1415926...)

realmax:系统所能表示的最大数值

realmin:系统所能表示的最小数值

nargin: 函数的输入引数个数

nargin: 函数的输出引数个数

=============================================== Matlab 入门教程--流程控制

1-2、重复命令

最简单的重复命令是for n圈(for-loop),其基本形式为:

for 变数= 矩阵;

运算式;

end

其中变数的值会被依次设定为矩阵的每一行,来执行介於for 和end 之间的

运算式。因此,若无意外情况,运算式执行的次数会等於矩阵的行数。

举例来说,下列命令会产生一个长度为6 的调和数列(Harmonic sequence):

x = zeros(1,6); % x 是一个16 的零矩阵

for i = 1:6,

x(i) = 1/i;

end

在上例中,矩阵x 最初是一个16 的零矩阵,在for n圈中,变数i 的值依次是1 到6,因此矩阵x 的第i 个元素的值依次被设为1/i。我们可用分数来显示此数列:

format rat % 使用分数来表示数值

disp(x)

1 1/

2 1/

3 1/

4 1/

5 1/6

for n圈可以是多层的,下例产生一个16 的Hilbert 矩阵h,其中为於第i

列、第j 行的元素为:

h = zeros(6);

for i = 1:6,

for j = 1:6,

h(i,j) = 1/(i+j-1);

end

end

disp(h)

1 1/

2 1/

3 1/

4 1/

5 1/6

1/2 1/3 1/4 1/5 1/6 1/7

1/3 1/4 1/5 1/6 1/7 1/8

1/4 1/5 1/6 1/7 1/8 1/9

1/5 1/6 1/7 1/8 1/9 1/10

1/6 1/7 1/8 1/9 1/10 1/11

小提示:预先配置矩阵

在上面的例子,我们使用zeros 来预先配置(Allocate)了一个适当大小

的矩阵。若不预先配置矩阵,程式仍可执行,但此时MATLAB 需要动态地增加(或减小)矩阵的大小,因而降低程式的执行效率。所以在使用一个矩

阵时,若能在事前知道其大小,则最好先使用zeros 或ones 等命令来预先配

置所需的记忆体(即矩阵)大小。

在下例中,for n圈列出先前产生的Hilbert 矩阵的每一行的平方和:

for i = h,

disp(norm(i)^2); % 印出每一行的平方和

end

1299/871

282/551

__650/2343

524/2933

559/4431

831/8801

在上例中,每一次i 的值就是矩阵h 的一行,所以写出来的命令特别简洁。

令一个常用到的重复命令是while n圈,其基本形式为:

while 条件式;

运算式;

end

也就是说,只要条件示成立,运算式就会一再被执行。例如先前产生调和

数列的例子,我们可用while n圈改写如下:

x = zeros(1,6); % x 是一个16 的零矩阵

i = 1;

while i <= 6,

x(i) = 1/i;

i = i+1;

end

format short

1-3、逻辑命令

最简单的逻辑命令是if, ..., end,其基本形式为:

if 条件式;

运算式;

end

if rand(1,1) > 0.5,

disp('Given random number is greater than 0.5.');

end

Given random number is greater than 0.5.

1-4、集合多个命令於一个M 档案

若要一次执行大量的MATLAB 命令,可将这些命令存放於一个副档名为m 的档案,并在MATLAB 提示号下键入此档案的主档名即可。此种包含MATLAB 命令的档案都以m 为副档名,因此通称M 档案(M-files)。例如一个名为test.m

的M 档案,包含一连串的MATLAB 命令,那麽只要直接键入test,即可执行其所包含的命令:

pwd % 显示现在的目录

ans =

D:\MATLAB5\bin

cd c:\data\mlbook % 进入test.m 所在的目录

type test.m % 显示test.m 的内容

% This is my first test M-file.

% Roger Jang, March 3, 1997

fprintf('Start of test.m!\n');

for i = 1:3,

fprintf('i = %d ---> i^3 = %d\n', i, i^3);

end

fprintf('End of test.m!\n');

test % 执行test.m

Start of test.m!

i = 1 ---> i^3 = 1

i = 2 ---> i^3 = 8

i = 3 ---> i^3 = 27

End of test.m!

小提示:第一注解行(H1 help line)

test.m 的前两行是注解,可以使程式易於了解与管理。特别要说明的是,

第一注解行通常用来简短说明此M 档案的功能,以便lookfor 能以关键字比

对的方式来找出此M 档案。举例来说,test.m 的第一注解行包含test 这个

字,因此如果键入lookfor

test,MATLAB 即可列出所有在第一注解行包含test 的M 档案,因而test.m

也会被列名在内。

严格来说,M 档案可再细分为命令集(Scripts)及函数(Functions)。前

述的test.m 即为命令集,其效用和将命令逐一输入完全一样,因此若在命

令集可以直接使用工作空间的变数,而且在命令集中设定的变数,也都在

工作空间中看得到。函数则需要用到输入引数(Input

arguments)和输出引数(Output

arguments)来传递资讯,这就像是C 语言的函数,或是FORTRAN 语言的副程序(Subroutines)。举例来说,若要计算一个正整数的阶乘

(Factorial),我们可以写一个如下的MATLAB 函数并将之存档於fact.m:function output = fact(n)

% FACT Calculate factorial of a given positive integer.

output = 1;

for i = 1:n,

output = output*i;

end

其中fact 是函数名,n 是输入引数,output 是输出引数,而i 则是此函数用

到的暂时变数。要使用此函数,直接键入函数名及适当输入引数值即可:

y = fact(5)

y =

120

(当然,在执行fact 之前,你必须先进入fact.m 所在的目录。)在执行

fact(5)时,MATLAB 会跳入一个下层的暂时工作空间(Temperary workspace),将变数n 的值设定为5,然後进行各项函数的内部运算,所有

内部运算所产生的变数(包含输入引数n、暂时变数i,以及输出引数

output)都存在此暂时工作空间中。运算完毕後,MATLAB 会将最後输出引

数output 的值设定给上层的变数y,并将清除此暂时工作空间及其所含的所

有变数。换句话说,在呼叫函数时,你只能经由输入引数来控制函数的输

入,经由输出引数来得到函数的输出,但所有的暂时变数都会随着函数的

结束而消失,你并无法得到它们的值。

小提示:有关阶乘函数

前面(及後面)用到的阶乘函数只是纯粹用来说明MATLAB 的函数观念。若

实际要计算一个正整数n 的阶乘(即n!)时,可直接写成prod(1:n),或是

直接呼叫gamma 函数:gamma(n-1)。

MATLAB 的函数也可以是递n式的(Recursive),也就是说,一个函数可以呼叫它本身。举例来说,n! =

n*(n-1)!,因此前面的阶乘函数可以改成递n式的写法:

function output = fact(n)

% FACT Calculate factorial of a given positive integer

recursively.

if n == 1, % Terminating condition

output = 1;

return;

end

output = n*fact(n-1);

在写一个递n函数时,一定要包含结束条件(Terminating

condition),否则此函数将会一再呼叫自己,永远不会停止,直到电脑的

记忆体被耗尽为止。以上例而言,n==1 即满足结束条件,此时我们直接将output 设为1,而不再呼叫此函数本身。

发信人: alphazhao (子羽 & 三笑), 信区: Modelling

标题: Matlab 入门 (3)

发信站: 武汉白云黄鹤站 (Fri Dec 10 14:41:49 1999), 站内信件

发信人: Mars (混沌·分形·周期三), 信区: MATH

标题: Matlab 入门教程--流程控制

发信站: 一网深情 (Sun Nov 29 17:35:36 1998), 转信

1-2、重复命令

最简单的重复命令是for n圈(for-loop),其基本形式为:

for 变数 = 矩阵;

运算式;

end

其中变数的值会被依次设定为矩阵的每一行,来执行介於for 和end 之间的

运算式。因此,若无意外情况,运算式执行的次数会等於矩阵的行数。

举例来说,下列命令会产生一个长度为6 的调和数列(Harmonic sequence):

x = zeros(1,6); % x 是一个16 的零矩阵

for i = 1:6,

x(i) = 1/i;

end

在上例中,矩阵x 最初是一个16 的零矩阵,在for n圈中,变数i 的值依次是__1 到6,因此矩阵x 的第i 个元素的值依次被设为1/i。我们可用分数来显示此数列:

format rat % 使用分数来表示数值

disp(x)

1 1/

2 1/

3 1/

4 1/

5 1/6

for n圈可以是多层的,下例产生一个16 的Hilbert 矩阵h,其中为於第i

列、第j 行的元素为:

h = zeros(6);

for i = 1:6,

for j = 1:6,

h(i,j) = 1/(i+j-1);

end

end

disp(h)

1 1/

2 1/

3 1/

4 1/

5 1/6

1/2 1/3 1/4 1/5 1/6 1/7

1/3 1/4 1/5 1/6 1/7 1/8

1/4 1/5 1/6 1/7 1/8 1/9

1/5 1/6 1/7 1/8 1/9 1/10

1/6 1/7 1/8 1/9 1/10 1/11

小提示:预先配置矩阵

在上面的例子,我们使用zeros 来预先配置(Allocate)了一个适当大小

的矩阵。若不预先配置矩阵,程式仍可执行,但此时MATLAB 需要动态地增

加(或减小)矩阵的大小,因而降低程式的执行效率。所以在使用一个矩

阵时,若能在事前知道其大小,则最好先使用zeros 或ones 等命令来预先配

置所需的记忆体(即矩阵)大小。

在下例中,for n圈列出先前产生的Hilbert 矩阵的每一行的平方和:

for i = h,

disp(norm(i)^2); % 印出每一行的平方和

end

1299/871

282/551

650/2343

524/2933

559/4431

831/8801

在上例中,每一次i 的值就是矩阵h 的一行,所以写出来的命令特别简洁。

令一个常用到的重复命令是while n圈,其基本形式为:

while 条件式;

运算式;

end

也就是说,只要条件示成立,运算式就会一再被执行。例如先前产生调和

数列的例子,我们可用while n圈改写如下:

x = zeros(1,6); % x 是一个16 的零矩阵

i = 1;

while i <= 6,

x(i) = 1/i;

i = i+1;

end

format short

1-3、逻辑命令

最简单的逻辑命令是if, ..., end,其基本形式为:

if 条件式;

运算式;

end

if rand(1,1) > 0.5,

disp('Given random number is greater than 0.5.');

end

Given random number is greater than 0.5.

1-4、集合多个命令於一个M 档案

若要一次执行大量的MATLAB 命令,可将这些命令存放於一个副档名为m 的档案,并在MATLAB 提示号下键入此档案的主档名即可。此种包含MATLAB 命令的档案都以m 为副档名,因此通称M 档案(M-files)。例如一个名为test.m

的M 档案,包含一连串的MATLAB 命令,那麽只要直接键入test,即可执行其所包含的命令:

pwd % 显示现在的目录

ans =

D:\MATLAB5\bin

cd c:\data\mlbook % 进入test.m 所在的目录

type test.m % 显示test.m 的内容

% This is my first test M-file.

% Roger Jang, March 3, 1997

fprintf('Start of test.m!\n');

for i = 1:3,

fprintf('i = %d ---> i^3 = %d\n', i, i^3);

end

fprintf('End of test.m!\n');

test % 执行test.m

Start of test.m!

i = 1 ---> i^3 = 1

i = 2 ---> i^3 = 8

i = 3 ---> i^3 = 27

End of test.m!

小提示:第一注解行(H1 help line)

test.m 的前两行是注解,可以使程式易於了解与管理。特别要说明的是,

第一注解行通常用来简短说明此M 档案的功能,以便lookfor 能以关键字比

对的方式来找出此M 档案。举例来说,test.m 的第一注解行包含test 这个字,因此如果键入lookfor

test,MATLAB 即可列出所有在第一注解行包含test 的M 档案,因而test.m 也会被列名在内。

严格来说,M 档案可再细分为命令集(Scripts)及函数(Functions)。前

述的test.m 即为命令集,其效用和将命令逐一输入完全一样,因此若在命

令集可以直接使用工作空间的变数,而且在命令集中设定的变数,也都在

工作空间中看得到。函数则需要用到输入引数(Input

arguments)和输出引数(Output

arguments)来传递资讯,这就像是C 语言的函数,或是FORTRAN 语言的副程序(Subroutines)。举例来说,若要计算一个正整数的阶乘

(Factorial),我们可以写一个如下的MATLAB 函数并将之存档於fact.m:function output = fact(n)

% FACT Calculate factorial of a given positive integer.

output = 1;

for i = 1:n,

output = output*i;

end

其中fact 是函数名,n 是输入引数,output 是输出引数,而i 则是此函数用到的暂时变数。要使用此函数,直接键入函数名及适当输入引数值即可:

y = fact(5)

y =

120

(当然,在执行fact 之前,你必须先进入fact.m 所在的目录。)在执行

fact(5)时,MATLAB 会跳入一个下层的暂时工作空间(Temperary workspace),将变数n 的值设定为5,然後进行各项函数的内部运算,所有内部运算所产生的变数(包含输入引数n、暂时变数i,以及输出引数output)都存在此暂时工作空间中。运算完毕後,MATLAB 会将最後输出引

数output 的值设定给上层的变数y,并将清除此暂时工作空间及其所含的所有变数。换句话说,在呼叫函数时,你只能经由输入引数来控制函数的输入,经由输出引数来得到函数的输出,但所有的暂时变数都会随着函数的

结束而消失,你并无法得到它们的值。

小提示:有关阶乘函数

前面(及後面)用到的阶乘函数只是纯粹用来说明MATLAB 的函数观念。若

实际要计算一个正整数n 的阶乘(即n!)时,可直接写成prod(1:n),或是

直接呼叫gamma 函数:gamma(n-1)。

MATLAB 的函数也可以是递n式的(Recursive),也就是说,一个函数可以呼叫它本身。举例来说,n! =

n*(n-1)!,因此前面的阶乘函数可以改成递n式的写法:

function output = fact(n)

% FACT Calculate factorial of a given positive integer

recursively.

__if n == 1, % Terminating condition

output = 1;

return;

end

output = n*fact(n-1);

在写一个递n函数时,一定要包含结束条件(Terminating

condition),否则此函数将会一再呼叫自己,永远不会停止,直到电脑的

记忆体被耗尽为止。以上例而言,n==1 即满足结束条件,此时我们直接将output 设为1,而不再呼叫此函数本身。

Matlab 入门教程--环境设置

1-5、搜寻路径

在前一节中,test.m 所在的目录是d:\mlbook。如果不先进入这个目录,MATLAB 就找不到你要执行的M 档案。如果希望MATLAB 不论在何处都能执行test.m,那麽就必须将d:\mlbook 加入MATLAB 的搜寻路径(Search

path)上。要检视MATLAB 的搜寻路径,键入path 即可:

path

MATLABPATH

d:\matlab5\toolbox\matlab\general

d:\matlab5\toolbox\matlab\ops

d:\matlab5\toolbox\matlab\lang

d:\matlab5\toolbox\matlab\elmat

d:\matlab5\toolbox\matlab\elfun

d:\matlab5\toolbox\matlab\specfun

d:\matlab5\toolbox\matlab\matfun

d:\matlab5\toolbox\matlab\datafun

d:\matlab5\toolbox\matlab\polyfun

d:\matlab5\toolbox\matlab\funfun

d:\matlab5\toolbox\matlab\sparfun

d:\matlab5\toolbox\matlab\graph2d

d:\matlab5\toolbox\matlab\graph3d

d:\matlab5\toolbox\matlab\specgraph

d:\matlab5\toolbox\matlab\graphics

d:\matlab5\toolbox\matlab\uitools

d:\matlab5\toolbox\matlab\strfun

d:\matlab5\toolbox\matlab\iofun

d:\matlab5\toolbox\matlab\timefun

d:\matlab5\toolbox\matlab\datatypes

d:\matlab5\toolbox\matlab\dde

d:\matlab5\toolbox\matlab\demos

d:\matlab5\toolbox\tour

d:\matlab5\toolbox\simulink\simulink

d:\matlab5\toolbox\simulink\blocks

d:\matlab5\toolbox\simulink\simdemos

d:\matlab5\toolbox\simulink\dee

d:\matlab5\toolbox\local

此搜寻路径会依已安装的工具箱(Toolboxes)不同而有所不同。要查询某

一命令是在搜寻路径的何处,可用which 命令:

which expo

d:\matlab5\toolbox\matlab\demos\expo.m

很显然c:\data\mlbook 并不在MATLAB 的搜寻路径中,因此MATLAB 找不到

test.m 这个M 档案:

which test

c:\data\mlbook\test.m

要将d:\mlbook 加入MATLAB 的搜寻路径,还是使用path 命令:

path(path, 'c:\data\mlbook');

此时d:\mlbook 已加入MATLAB 搜寻路径(键入path 试看看),因此MATLAB 已经"看"得到test.m:

which test

c:\data\mlbook\test.m

现在我们就可以直接键入test,而不必先进入test.m 所在的目录。

小提示:如何在其启动MATLAB 时,自动设定所需的搜寻路径?

如果在每一次启动MATLAB 後,都要设定所需的搜寻路径,将是一件很麻烦

的事。有两种方法,可以使MATLAB 启动後,即可载入使用者定义的搜寻路

径:

1.MATLAB 的预设搜寻路径是定义在matlabrc.m(在c:\matlab 之下,或

是其他安装MATLAB 的主目录下),MATLAB 每次启动後,即自动执行此档案。因此你可以直接修改matlabrc.m,以加入新的目录於搜寻路径之中。

1.MATLAB 在执行matlabrc.m 时,同时也会在预设搜寻路径中寻找

startup.m,若此档案存在,则执行其所含的命令。因此我们可将所有在

MATLAB 启动时必须执行的命令(包含更改搜寻路径的命令),放在此档案

中。

每次MATLAB 遇到一个命令(例如test)时,其处置程序为:

1.将test 视为使用者定义的变数。

2.若test 不是使用者定义的变数,将其视为永久常数。

3.若test 不是永久常数,检查其是否为目前工作目录下的M 档案。

4.若不是,则由搜寻路径寻找是否有test.m 的档案。

5.若在搜寻路径中找不到,则MATLAB 会发出哔哔声并印出错误讯息。

以下介绍与MATLAB 搜寻路径相关的各项命令。

1-6、资料的储存与载入

有些计算旷日废时,那麽我们通常希望能将计算所得的储存在档案中,以

便将来可进行其他处理。MATLAB 储存变数的基本命令是save,在不加任何

选项(Options)时,save 会将变数以二进制(Binary)的方式储存至副档

名为mat 的档案,如下述:

save:将工作空间的所有变数储存到名为matlab.mat 的二进制档案。

save filename:将工作空间的所有变数储存到名为filename.mat 的

二进制档案。

save filename x y z:将变数x、y、z 储存到名为filename.mat 的二

进制档案。

以下为使用save 命令的一个简例:

who % 列出工作空间的变数

Your variables are:

B h j y

ans i x z

save test B y % 将变数B 与y 储存至test.mat

dir % 列出现在目录中的档案

. 2plotxy.doc fact.m simulink.doc test.m ~$1basic.doc

.. 3plotxyz.doc first.doc temp.doc test.mat

1basic.doc book.dot go.m template.doc testfile.dat

delete test.mat % 删除test.mat

以二进制的方式储存变数,通常档案会比较小,而且在载入时速度较快,

但是就无法用普通的文书软体(例如pe2 或记事本)看到档案内容。若想看到档案内容,则必

须加上-ascii 选项,详见下述:

save filename x -ascii:将变数x 以八位数存到名为filename 的

ASCII 档案。

save filename x -ascii -double:将变数x 以十六位数存到名为

filename 的ASCII 档案。

另一个选项是-tab,可将同一列相邻的数目以定位键(Tab)隔开。

小提示:二进制和ASCII 档案的比较

在save 命令使用-ascii 选项後,会有下列现象:

save 命令就不会在档案名称後加上mat 的副档名。因此以副档名mat

结尾的档案通常是MATLAB 的二进位资料档。

通常只储存一个变数。若在save 命令列中加入多个变数,仍可执

行,但所产生的档案则无法以简单的load 命令载入。有关load 命令的用法,详见下述。

原有的变数名称消失。因此在将档案以load 载入时,会取用档案名

称为变数名称。

对於复数,只能储存其实部,而虚部则会消失。

对於相同的变数,ASCII 档案通常比二进制档案大。

由上表可知,若非有特殊需要,我们应该尽量以二进制方式储存资料。

load 命令可将档案载入以取得储存之变数:

load

filename:load 会寻找名称为filename.mat 的档案,并以二进制格式

载入。若找不到filename.mat,则寻找名称为filename 的档案,并以ASCII 格式载入。

load filename -ascii:load 会寻找名称为filename 的档案,并以

ASCII 格式载入。

若以ASCII 格式载入,则变数名称即为档案名称(但不包含副档名)。若以二进制载入,则可保留原有的变数名称,如下例:

clear all; % 清除工作空间中的变数

x = 1:10;

save testfile.dat x -ascii % 将x 以ASCII 格式存至名为testfile.dat 的档案

load testfile.dat % 载入testfile.dat

who % 列出工作空间中的变数

Your variables are:

testfile x

注意在上述过程中,由於是以ASCII 格式储存与载入,所以产生了一个与档案名称相同的变数testfile,此变数的值和原变数x 完全相同。

===============================================

1-7、结束MATLAB

有三种方法可以结束MATLAB:

1.键入exit

2.键入quit

3.直接关闭MATLAB 的命令视窗(Command window)

===============================================

__Matlab 入门教程--二维绘图

2.基本xy 平面绘图命令

MATLAB 不但擅长於矩阵相关的数值运算,也适合用在各种科学目视表示(Scientific visualization)。本节将介绍MATLAB 基本xy 平面及xyz 空间的各项绘图命令,包含一维曲线及二维曲面的绘制、列印及存档。

plot 是绘制一维曲线的基本函数,但在使用此函数之前,我们需先定义曲线上每一点的x 及y 座标。下例可画出一条正弦曲线:

close all; x=linspace(0, 2*pi, 100); % 100 个点的x 座标

y=sin(x); % 对应的y 座标

plot(x,y);

====================================================

小整理:MATLAB 基本绘图函数

plot: x 轴和y 轴均为线性刻度(Linear scale)

loglog: x 轴和y 轴均为对数刻度(Logarithmic scale)

semilogx: x 轴为对数刻度,y 轴为线性刻度

semilogy: x 轴为线性刻度,y 轴为对数刻度

====================================================

若要画出多条曲线,只需将座标对依次放入plot 函数即可:

plot(x, sin(x), x, cos(x));

若要改变颜色,在座标对後面加上相关字串即可:

plot(x, sin(x), 'c', x, cos(x), 'g');

若要同时改变颜色及图线型态(Line style),也是在座标对後面加上相

关字串即可:

plot(x, sin(x), 'co', x, cos(x), 'g*');

====================================================

小整理:plot 绘图函数的叁数

字元颜色字元图线型态

y 黄色. 点

k 黑色o 圆

w 白色x x

b 蓝色+ +

g 绿色* *

r 红色- 实线

c 亮青色: 点线

m 锰紫色-. 点虚线

-- 虚线

====================================================

图形完成後,我们可用axis([xmin,xmax,ymin,ymax])函数来调整图轴的范围:

axis([0, 6, -1.2, 1.2]);

此外,MATLAB 也可对图形加上各种注解与处理:

xlabel('Input Value'); % x 轴注解

ylabel('Function Value'); % y 轴注解

title('Two Trigonometric Functions'); % 图形标题

legend('y = sin(x)','y = cos(x)'); % 图形注解

grid on; % 显示格线

我们可用subplot 来同时画出数个小图形於同一个视窗之中:

subplot(2,2,1); plot(x, sin(x));

subplot(2,2,2); plot(x, cos(x));

subplot(2,2,3); plot(x, sinh(x));

subplot(2,2,4); plot(x, cosh(x));

MATLAB 还有其他各种二维绘图函数,以适合不同的应用,详见下表。====================================================

小整理:其他各种二维绘图函数

bar 长条图

errorbar 图形加上误差范围

fplot 较精确的函数图形

polar 极座标图

hist 累计图

rose 极座标累计图

stairs 阶梯图

stem 针状图

fill 实心图

feather 羽毛图

compass 罗盘图

quiver 向量场图

====================================================

以下我们针对每个函数举例。

当资料点数量不多时,长条图是很适合的表示方式:

close all; % 关闭所有的图形视窗

x=1:10;

y=rand(size(x));

bar(x,y);

如果已知资料的误差量,就可用errorbar 来表示。下例以单位标准差来做资料的误差量:

x = linspace(0,2*pi,30);

y = sin(x);

e = std(y)*ones(size(x));

errorbar(x,y,e)

对於变化剧烈的函数,可用fplot 来进行较精确的绘图,会对剧烈变化处进行较密集的取样,如下例:

fplot('sin(1/x)', [0.02 0.2]); % [0.02 0.2]是绘图范围

若要产生极座标图形,可用polar:

theta=linspace(0, 2*pi);

r=cos(4*theta);

polar(theta, r);

对於大量的资料,我们可用hist 来显示资料的分情况和统计特性。下面

几个命令可用来验证randn 产生的高斯乱数分:

x=randn(5000, 1); % 产生5000 个?=0,?=1 的高斯乱数

hist(x,20); % 20 代表长条的个数

rose 和hist 很接近,只不过是将资料大小视为角度,资料个数视为距离,? ⒂眉 昊嬷票硎荆?

x=randn(1000, 1);

rose(x);

stairs 可画出阶梯图:

x=linspace(0,10,50);

y=sin(x).*exp(-x/3);

stairs(x,y);

stems 可产生针状图,常被用来绘制数位讯号:

x=linspace(0,10,50);

y=sin(x).*exp(-x/3);

stem(x,y);

stairs 将资料点视为多边行顶点,并将此多边行涂上颜色:

x=linspace(0,10,50);

y=sin(x).*exp(-x/3);

fill(x,y,'b'); % 'b'为蓝色

feather 将每一个资料点视复数,并以箭号画出:

theta=linspace(0, 2*pi, 20);

z = cos(theta)+i*sin(theta);

feather(z);

compass 和feather 很接近,只是每个箭号的起点都在圆点:

theta=linspace(0, 2*pi, 20);

z = cos(theta)+i*sin(theta);

compass(z);

3.基本XYZ 立体绘图命令

在科学目视表示(Scientific visualization)中,三度空间的立体图是

一个非常重要的技巧。本章将介绍MATLAB 基本XYZ 三度空间的各项绘图命令。

mesh 和plot 是三度空间立体绘图的基本命令,mesh 可画出立体网状图,

plot 则可画出立体曲面图,两者产生的图形都会依高度而有不同颜色。下

列命令可画出由函数形成的立体网状图:

x=linspace(-2, 2, 25); % 在x 轴上取25 点

y=linspace(-2, 2, 25); % 在y 轴上取25 点

[xx,yy]=meshgrid(x, y); % xx 和yy 都是21x21 的矩阵

zz=xx.*exp(-xx.^2-yy.^2); % 计算函数值,zz 也是21x21 的矩阵

mesh(xx, yy, zz); % 画出立体网状图

surf 和mesh 的用法类似:

x=linspace(-2, 2, 25); % 在x 轴上取25 点

y=linspace(-2, 2, 25); % 在y 轴上取25 点

[xx,yy]=meshgrid(x, y); % xx 和yy 都是21x21 的矩阵

zz=xx.*exp(-xx.^2-yy.^2); % 计算函数值,zz 也是21x21 的矩阵

surf(xx, yy, zz); % 画出立体曲面图

为了方便测试立体绘图,MATLAB 提供了一个peaks 函数,可产生一个凹凸有致的曲面,包含了三个局部极大点及三个局部极小点,其方程式为:

要画出此函数的最快方法即是直接键入peaks:

peaks

z = 3*(1-x).^2.*exp(-(x.^2) - (y+1).^2) ...

- 10*(x/5 - x.^3 - y.^5).*exp(-x.^2-y.^2) ...

- 1/3*exp(-(x+1).^2 - y.^2)

我们亦可对peaks 函数取点,再以各种不同方法进行绘图。meshz 可将曲面

加上围裙:

[x,y,z]=peaks;

meshz(x,y,z);

axis([-inf inf -inf inf -inf inf]);

waterfall 可在x 方向或y 方向产生水流效果:[x,y,z]=peaks;

__waterfall(x,y,z);

axis([-inf inf -inf inf -inf inf]);

下列命令产生在y 方向的水流效果:

[x,y,z]=peaks;

waterfall(x',y',z');

axis([-inf inf -inf inf -inf inf]);

meshc 同时画出网状图与等高线:

[x,y,z]=peaks;

meshc(x,y,z);

axis([-inf inf -inf inf -inf inf]);

surfc 同时画出曲面图与等高线:

[x,y,z]=peaks;

surfc(x,y,z);

axis([-inf inf -inf inf -inf inf]);

contour3 画出曲面在三度空间中的等高线:contour3(peaks, 20);

axis([-inf inf -inf inf -inf inf]);

contour 画出曲面等高线在XY 平面的投影:contour(peaks, 20);

plot3 可画出三度空间中的曲线:

t=linspace(0,20*pi, 501);

plot3(t.*sin(t), t.*cos(t), t);

亦可同时画出两条三度空间中的曲线:

t=linspace(0, 10*pi, 501);

plot3(t.*sin(t), t.*cos(t), t, t.*sin(t), t.*cos(t), -t);

(完整版)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化为多项分数展开 sign(x):符号函数(Signum function)。 当x<0时,sign(x)=-1; 当x=0时,sign(x)=0; 当x>0时,sign(x)=1。 rem(x,y):求x除以y的馀数 gcd(x,y):整数x和y的最大公因数 lcm(x,y):整数x和y的最小公倍数 exp(x):自然指数 pow2(x):2的指数 log(x):以e为底的对数,即自然对数或 log2(x):以2为底的对数 log10(x):以10为底的对数 二、MATLAB常用的三角函数 sin(x):正弦函数 cos(x):余弦函数

tan(x):正切函数 asin(x):反正弦函数 acos(x):反馀弦函数 atan(x):反正切函数 atan2(x,y):四象限的反正切函数 sinh(x):超越正弦函数 cosh(x):超越馀弦函数 tanh(x):超越正切函数 asinh(x):反超越正弦函数 acosh(x):反超越馀弦函数 atanh(x):反超越正切函数 三、适用於向量的常用函数有: min(x): 向量x的元素的最小值 max(x): 向量x的元素的最大值 mean(x): 向量x的元素的平均值 median(x): 向量x的元素的中位数 std(x): 向量x的元素的标准差 diff(x): 向量x的相邻元素的差 sort(x): 对向量x的元素进行排序(Sorting)length(x): 向量x的元素个数 norm(x): 向量x的欧氏(Euclidean)长度sum(x): 向量x的元素总和 prod(x): 向量x的元素总乘积 cumsum(x): 向量x的累计元素总和cumprod(x): 向量x的累计元素总乘积 dot(x, y): 向量x和y的内积 cross(x, y): 向量x和y的外积 四、MATLAB的永久常数

Matlab基本语法.word

实验序号 1 Matlab基本语法 一、实验目的 通过本实验,使学生初步了解Matlab的基本语法规则,学习并进一步掌握Matlab矩阵运算和数组运算的基本规则,以及基本绘图方法。 二、实验器材 PC电脑一台 MATLAB软件 三、实验内容与基本要求 a) 通过MATLAB语言,给矩阵赋值:显示一行数组,显示一列数组。 b) 基本基本矩阵的显示方式:ones,zeros,eye。 c) 在同一张图上绘出:y=3sin(x+pi/3),y=cos(3x+pi/6),并用不同的线型和点型区分。 d) 基本二维与三维绘图命令的训练。 四、实验报告要求 要求给出编程思路及程序清单,并呈现出最终结果 1)显示一行: a=[1 2 3 3 4 5 6] 回车结果: a = 1 2 3 3 4 5 6 显示一列; a=[1 ,2 ,3 ,4 ,5] 回车显示: a= 1 2 3 4 5

2)输入ones(2,5): 输出结果: ans= 1 1 1 1 1 1 1 1 1 1 输入zeros(2,3): 输出结果: ans= 00 0 00 0 输入eye(4,4): 输出结果: ans= 10 0 0 0 1 0 0 00 1 0 00 0 1 3)在matlab中输入: x=0:0.01:10; y=3*sin(x+pi/3); plot(x,y,’:r’) hold on y=cos(3*x+pi/6) plot(x,y,’b’) 得到图形:

4) 输入程序: y=5*(rand(1,10)-.5); plot(y) title('my first plot') xlabel('x'); ylabel('y'); grid on 得到二维图形: 012345678910 -3-2 -1 1 2 3

matlab各种函数的用法

1 Text函数的用法: 用法 text(x,y,'string')在图形中指定的位置(x,y)上显示字符串string text(x,y,z,'string') 在三维图形空间中的指定位置(x,y,z)上显示字符串string 2, plot([0,z1,z12],'-b','LineWidth',3)[ ]里面表示数组. 3, x,y均为矩阵,plot命令就是画出x,y矩阵对应的二维平面的点形成的曲线。y(:,1)中逗号前是行,逗号后是列,冒号表示从几到几。所以y(:,1)表示第一列的所有元素。如果是y(3:5,1)则表示第一列的第3到第5行对应的元素。只要你的y矩阵有100列,那你当然可以将1改成100。同理,x矩阵也可以这样。 4 sym的意思是symbol,就是后面括号里面是个代数式,要进行符号运算,class()判断对象是什么类型。 5 matlab控制运算精度用的是digits和vpa这两个函数 xs = vpa(x,n) 在n位相对精度下,给出x的数值型符号结果xs xs = vpa(x) 在digits指定的精度下,给出x的数值型符号结果xs

digits用于规定运算精度,比如: digits(20); 这个语句就规定了运算精度是20位有效数字。但并不是规定了就可以使用,因为实际编程中,我们可能有些运算需要控制精度,而有些不需要控制。vpa就用于解决这个问题,凡是用需要控制精度的,我们都对运算表达式使用vpa函数。例如: digits(5); a=vpa(sqrt(2)); 这样a的值就是1.4142,而不是准确的1.4880 又如: digits(5); a=vpa(sqrt(2)); b=sqrt(2); 这样a的值是1.4142,b没有用vpa函数,所以b是1.4880...... 6

matlab 常用函数汇总

matlab 常用函数汇总 编程2008-07-10 21:45:20 阅读46 评论0 字号:大中小订阅matlab常用函数 图形注释 Title 图形标题 Xlabel X轴标记 Ylabel Y轴标记 Text 文本注释 Gtext 用鼠标放置文本 Grid 网格线 MATLAB编程语言 Function 增加新的函数 Eval 执行由MA TLAB表达式构成的字串 Feval 执行由字串指定的函数 Global 定义全局变量 程序控制流 If 条件执行语句 Else 与if命令配合使用 Elseif 与if命令配合使用 End For,while和if语句的结束 For 重复执行指定次数(循环) While 重复执行不定次数(循环) Break 终止循环的执行 Return 返回引用的函数 Error 显示信息并终止函数的执行 交互输入 Input 提示用户输入 Keyboard 像底稿文件一样使用键盘输入 Menu 产生由用户输入选择的菜单 Pause 等待用户响应 Uimenu 建立用户界面菜单 Uicontrol 建立用户界面控制 一般字符串函数 Strings MATLAB中有关字符串函数的说明 Abs 变字符串为数值 Setstr 变数值为字符串 Isstr 当变量为字符串时其值为真 Blanks 空串 Deblank 删除尾部的空串 Str2mat 从各个字符串中形成文本矩阵 Eval 执行由MA TLAB表达式组成的串 字符串比较 Strcmp , , , 比较字符串 Findstr 在一字符串中查找另一个子串

Upper 变字符串为大写 Lower 变字符串为小写 Isletter 当变量为字母时,其值为真 Isspace 当变量为空白字符时,其值为真 字符串与数值之间变换 Num2str 变数值为字符串 Int2str 变整数为字符串 Str2num 变字符串为数值 Sprintf 变数值为格式控制下的字符串 Sscanf 变字符串为格式控制下的数值 十进制与十六进制数之间变换 Hex2num 变十六进制为IEEE标准下的浮点数Hex2dec 变十六制数为十进制数 Dec2hex 变十进制数为十六进制数 建模 Append 追加系统动态特性 Augstate 变量状态作为输出 Blkbuild 从方框图中构造状态空间系统Cloop 系统的闭环 Connect 方框图建模 Conv 两个多项式的卷积 Destim 从增益矩阵中形成离散状态估计器Dreg 从增益矩阵中形成离散控制器和估计器Drmodel 产生随机离散模型 Estim 从增益矩阵中形成连续状态估计器Feedback 反馈系统连接 Ord2 产生二阶系统的A、B、C、D Pade 时延的Pade近似 Parallel 并行系统连接 Reg 从增益矩阵中形成连续控制器和估计器Rmodel 产生随机连续模型 Series 串行系统连接 Ssdelete 从模型中删除输入、输出或状态ssselect 从大系统中选择子系统 模型变换 C2d 变连续系统为离散系统 C2dm 利用指定方法变连续为离散系统 C2dt 带一延时变连续为离散系统 D2c 变离散为连续系统 D2cm 利用指定方法变离散为连续系统 Poly 变根值表示为多项式表示 Residue 部分分式展开 Ss2tf 变状态空间表示为传递函数表示 Ss2zp 变状态空间表示为零极点表示

自动控制常见MATLAB函数的应用

自动控制常见MATLAB 函数的应用 1、在matlab 中采用roots 函数求解多项式的根,采用conv 函数实 现多项式的积,相互连接的模块的模型求解也相当简单(1)、串联连接命令G=G1*G2(2)、并联连接命令G=G 1±G2(3)、反馈连接命令G=feedback (G1,G2,Sign )(sign 用来表示系统是正反馈或负反馈,sign=-1为负反馈) 例如:① 程序如下: >>p=[1304]; >>roots(p) ans = -3.3553 0.1777+1.0773i 0.1777-1.0773i ②、用matlab 实现: 程序如下: >>p=[321];q=[14]; >>n=conv(p,q) n = 31494③、一个传递函数模型,可以由下面的命令输入:32()34p s s s =++2 ()(321)(4)n s s s s =+++325()345 s G s s s s +=+++

>>num=[15];den=[1345]; >>G=tf(num,den) Transfer function: s +5 --------------------- s^3+3s^2+4s +5 ④、如下图所示,前向传递函数为G (S ) ,反馈回路传递函数为H(S),利用feedback 计算系统的闭环传递函数 程序如下: >>numg=[1];deng=[50000]; >>numh=[11];denh=[12]; >>[num,den]=feedback(numg,deng,numb,denh,-1); >>[num,den]=feedback(numg,deng,numh,denh,-1); >>G=tf(num,den) () R S ???→

matlab 常用函数(1)

A axis() axis([xmin xmax ymin ymax]) sets the limits for the x- and y-axis of the current axes. axis([xmin xmax ymin ymax zmin zmax cmin cmax]) sets the x-, y-, and z-axis limits and the color scaling limits (see caxis) of the current axes. axis equal sets the aspect ratio so that the data units are the same in every direction. The aspect ratio of the x-, y-, and z-axis is adjusted automatically according to the range of data units in the x, y, and z directions C clf Clear current figure window G grid off/on The grid function turns the current axes' grid lines on and off. H hold on/off ●The hold function determines whether new graphics objects are added to the graph or replace objects in the graph. ●hold on retains the current plot and certain axes properties so that subsequent graphing commands add to the existing graph. ●hold off resets axes properties to their defaults before drawing new plots. hold off is the default

(完整版)Matlab基本语法教案

第二章基本语法 2.1 MATLAB的矩阵、变量与表达式 在MATLAB系统中,只管理着一种对象---矩阵(包括复数矩阵),任何数量在MATLAB 中是作为1x1的矩阵来处理的。 一、矩阵的创建: 1. 在MATLAB中创建矩阵的原则: (1) 矩阵元素必须写在“[]”内; (2) 矩阵的同一行之间用空格或“,”分隔; (3) 矩阵的行与行之间用分号或回车符分隔; (4) 矩阵的尺寸不必预先定义; (5) 矩阵元素可以是数值、变量、表达式或函数。 2. 创建矩阵的四种方法。 (1) 在命令窗口直接输入: 如输入:A=[1,2,3;4,5,6;7,8,9] 则显示:A= 1 2 3 4 5 6 7 8 9 也可用空格代替逗号,用回车代替分号: 如上例:A=[1 2 3 4 5 6 7 8 9] 则显示:A= 1 2 3 4 5 6 7 8 9 (2) 由M文件创建矩阵: 有时编程需要用M文件创建矩阵。或者当矩阵尺寸较大时,可以按矩阵的输入方式编辑一个M 文件(可用循环程序来做),在命令窗口直接执行该文件,即可将矩阵调入工作空间。 (3) 由函数创建矩阵: 对于一些特殊的矩阵,可以利用MATLAB的内部函数或用户自定义函数创建矩阵。 如diag()函数可生成对角阵。ones(m,n) ; zeros(m,n) (4) 通过数据文件创建矩阵: save 文件名(其中,文件名是*.mat文件) load 文件名例:工作目录下有temp.mat文件,可以执行load temp

3. 复数矩阵表示 (1) 复数表示 复数的虚根单位用i,j表示,即:z=3+4i或z=3+4j. 例如输入z=3+4i 输入z=3+4j 得到:得到: z = z = 3.0000 + 4.0000i 3.0000 + 4.0000i (2) 复数矩阵 A=[1 2;3 4]+i*[5 6;7 8] 或者A=[1+5i 2+6i;3+7i 4+8i],都得到: A = 1.0000 + 5.0000i 2.0000 + 6.0000i 3.0000 + 7.0000i 4.0000 + 8.0000i 二、MATLAB的变量和表达式 1.变量名命名规则 ?可以是字母、数字或下划线,但第一个字符必须是字母。 ?长度<=31 ?分辨大小写的,M和m是两个变量。 ?无须对变量的类型进行说明,当需要使用一个新变量时,只须直接对其赋值即可。 2.表达式则是由运算符、函数调用、变量名以及特殊字符组成的式子。 3.MATLAB中基本的赋值语句为: (1) 形式一:变量名=表达式 将表达式的结果赋给变量名(表达式的运算结果都是一个矩阵)。 (2) 形式二:表达式 计算表达式的值,将其值赋给MATLAB的永久变量ans。 上面两种形式,当表达式由分号“;”结束时,变量结果不显示。当表达式由逗号“,”或换行号结束,则将结果显示出来。 注: 1)MATLAB中有几个变量不能被clear清除,称永久变量。(其他变量名最好不要与此同)。即ans:当不指明某一语句的计算结果赋给哪个变量时,系统自动将该计算结果赋给ans; eps:计算机能产生的绝对值最小的浮点数;

MATLAB常用函数

数字信号处理与MATLAB 实现 1. n1=[ns:nf]; x1=[zeros(1,n0-ns),1,zeros (1,nf-n0)]; %单位抽样序列的产生 2. subplot(2,2,4) 画2行2列的第4个图 3. stem(n,x) %输出离散序列,(plot 连续) 4. 编写子程序可调用 4.1 单位抽样序列)(0n n -δ生成函数impseq.m [x,m]=impseq(n0,ns,nf); %序列的起点为ns ,终点为nf ,在n=n0点处生成一个单位脉冲 n=[-5:5];x1=3*impseq(2,-5,5)-impseq(-4,-5,5) x1 = 0 -1 0 0 0 0 0 3 0 0 0 n=[-5:5];x1=3*impseq(2,-4,5)-impseq(-4,-5,4) %起点到终点长度要一致 x1 = 0 -1 0 0 0 0 3 0 0 0 4.2 单位阶跃序列)(0n n u -生成函数stepseq.m [x,n]=stepseq(no,ns,nf) %序列的起点为ns ,终点为nf ,在n=n0点处生成一个单位阶跃 4.3 两个信号相加的生成函数sigadd.m [y,n]=sigadd(x1,n1,x2,n2) 4.4 两个信号相乘的生成函数sigmult.m [y,n]=sigmult(x1,n1,x2,n2) 4.5 序列移位y(n)=x(n-n0)的生成函数sigshift.m [y,n]=sigshift(x,m,n0) 4.6 序列翻褶y(n)=x(-n)的生成函数sigfold.m [y,n]=sigfold(x,n) 4.7 evenodd.m 函数可以将任一给定的序列x(n)分解为xe(n)和xo(n)两部分 [xe,xo,m]=evenodd(x,n) 4.8 序列从负值开始的卷积conv_m, conv 默认从0开始 function [y,ny]=conv_m(x,nx,h,nh) 有{x(n):nx1≤n ≤nx2},{h(n):nh1≤n ≤nh2}, 卷积结果序列为 {y(n):nx1+nh1≤n ≤nx2+nh2} 例. 设1132)(-++=z z z X ,1225342)(-+++=z z z z X ,求)()()(21z X z X z Y += 程序: x1=[1,2,3];n1=-1:1; x2=[2,4,3,5];n2=-2:1; [y,n]=conv_m(x1,n1,x2,n2)

实验二 MATLAB基本语法(1)

实验二 MATLAB基本语法(1) (变量及其赋值,运算符与数学表达式) 1、实验目的 1)掌握MATLAB的变量及其赋值方法; 2)掌握MATLAB的运算符与数学表达式的基本用法; 2、实验内容 2.1 矩阵及其元素的赋值 2.1.1 变量(即矩阵,下同)的赋值 x1=[1 2 3 4] % 空格作为元素间分隔符 x2=[5,6,7,8] % 逗号作为元素间分隔符 x3=[1,2;3,4;5,6] % 分号作为矩阵行分界符 x4=[2*3,4-5,3^2] % 表达式为矩阵元素赋值 2.1.2 变量名 A=[1,2,3,4,5] a=[1 2 3 4 5] B=a+A % a和A不是同一个变量 2.1.3 元素的标注 w=[1 2 3 4;4 5 6 7;7 8 9 10] w(2,3) % 查看第2行、第3列的结果,注意下标从1开始 2.1.4 矩阵的扩充 w(5,6)=1.2345 % 为原矩阵不存在的元素赋值,矩阵扩充到能容纳该元素

2.1.5 整行(列)赋值 w(4,:)=[1,2,3,4,5,6] % (4,:)表示第4行的所有元素 w(:,6)=[5;6;7;8;9] % (:,6)表示第6列的所有元素 2.1.6 整行清除: w([4,5],:)= [] % 第4,5行变为空矩阵 2.1.7 矩阵的拼接 X1=[1,1,1; 2,2,2];X2=[3,3; 4,4];X3=[5;5];X4=[6,6,6,6; 7,7,7,7] XX=[X1,X2;X3,X4] % 矩阵拼接。注意按行对齐进行拼接 2.1.8 抽取部分 X =[1,2,3,4,5;6,7,8,9,0;3,3,3,3,3;4,4,4,4,4;5,5,5,5,5] Y1=X([1,2,5],[2,4]) Y2=X([2,4],[1,2,3]) 2.1.9 等间隔赋值 ii=0:1:10 % 格式为初值:步长:终值 2.1.10 特殊矩阵和数组 a=eye(3,4) % 单位矩阵 b=eye(size(a)) % 单位矩阵 c=size(a) % 测矩阵的大小 d=zeros(3) % 零矩阵 e=zeros(2,4) % 零矩阵 f=ones(4) % 全1矩阵 h=ones(3,4) % 全1矩阵 C=rand(3) % 均匀分布随机矩阵 C=rand(3,5) % 均匀分布随机矩阵 D=randn(3) % 正态分布随机矩阵(均值=0,方差=1) D=randn(3,6) % 正态分布随机矩阵(均值=0,方差=1)

MatLab常用函数大全

1、求组合数 C,则输入: 求k n nchoosek(n,k) 例:nchoosek(4,2) = 6. 2、求阶乘 求n!.则输入: Factorial(n). 例:factorial(5) = 120. 3、求全排列 perms(x). 例:求x = [1,2,3]; Perms(x),输出结果为: ans = 3 2 1 3 1 2 2 3 1 2 1 3 1 2 3 1 3 2 4、求指数 求a^b:Power(a,b) ; 例:求2^3 ; Ans = pow(2,3) ; 5、求行列式 求矩阵A的行列式:det(A); 例:A=[1 2;3 4] ; 则det(A) = -2 ; 6、求矩阵的转置 求矩阵A的转置矩阵:A’ 转置符号为单引号. 7、求向量的指数 求向量p=[1 2 3 4]'的三次方:p.^3 例: p=[1 2 3 4]' A=[p,p.^2,p.^3,p.^4] 结果为:

注意:在p 与符号”^”之间的”.”不可少. 8、求自然对数 求ln(x):Log(x) 例:log(2) = 0.6931 9、求矩阵的逆矩阵 求矩阵A 的逆矩阵:inv(A) 例:a= [1 2;3 4]; 则 10、多项式的乘法运算 函数conv(p1,p2)用于求多项式p1和p2的乘积。这里,p1、p2是两个多项式系数向量。 例2-2 求多项式43810x x +-和223x x -+的乘积。 命令如下: p1=[1,8,0,0,-10]; p2=[2,-1,3]; c=conv(p1,p2) 11、多项式除法 函数[q ,r]=deconv(p1,p2)用于多项式p1和p2作除法运算,其中q 返回多项式p1除以p2的商式,r 返回p1除以p2的余式。这里,q 和r 仍是多项式系数向量。 例2-3 求多项式43810x x +-除以多项式223x x -+的结果。 命令如下: p1=[1,8,0,0,-10]; p2=[2,-1,3]; [q,r]=deconv(p1,p2) 12、求一个向量的最大值 求一个向量x 的最大值的函数有两种调用格式,分别是:

(完整版)matlab函数大全最完整版

MATLAB函数大全 Matlab有没有求矩阵行数/列数/维数的函数? ndims(A)返回A的维数 size(A)返回A各个维的最大元素个数 length(A)返回max(size(A)) [m,n]=size(A)如果A是二维数组,返回行数和列数nnz(A)返回A中非0元素的个数 MATLAB的取整函数:fix(x), floor(x) :,ceil(x) , round(x) (1)fix(x) : 截尾取整. >> fix( [3.12 -3.12]) ans = 3 -3 (2)floor(x):不超过x 的最大整数.(高斯取整) >> floor( [3.12 -3.12]) ans =

3 -4 (3)ceil(x) : 大于x 的最小整数>> ceil( [3.12 -3.12]) ans = 4 -3 (4)四舍五入取整 >> round(3.12 -3.12) ans = >> round([3.12 -3.12]) ans =

3 -3 >> 如何用matlab生成随机数函数 rand(1) rand(n):生成0到1之间的n阶随机数方阵rand(m,n):生成0到1之间的m×n的随机数矩阵(现成的函数) 另外: Matlab随机数生成函数 betarnd 贝塔分布的随机数生成器 binornd 二项分布的随机数生成器 chi2rnd 卡方分布的随机数生成器 exprnd 指数分布的随机数生成器 frnd f分布的随机数生成器 gamrnd 伽玛分布的随机数生成器 geornd 几何分布的随机数生成器 hygernd 超几何分布的随机数生成器

MATLAB常用函数

1概述安装介绍(略)。 2 矩阵和数组 2.1 创建特殊矩阵函数 Compan 伴随矩阵Diag 对角矩阵Eye 单位矩阵Gallery 测试矩阵Hadamard hadamard矩阵Hilb hilb矩阵Invhilb invhilb矩阵 Magic魔方矩阵Ones 全一矩阵Rand均匀分布随机矩阵 Randn 正态分布随机矩阵Rosser经典对称特征测试矩阵 Wilkinson wilkinson特征值测试矩阵Zeros 全零矩阵 注:diag(A,n)以向量A为主对角线为基准偏移n个位置。 2.2 矩阵连接 水平c=[a,b]或者c=[a b] 垂直c=[a;b] 连接函数(1)Cat 指定方向;(2)Cat(1,a,b)水平;(3)Cat(2,a,b)垂直;(4)Horzcat 水平方向;(5)Vertcat 垂直方向(6)Repmat 对现有矩阵复制粘贴(7)Blkdiag 以对角阵方式重组。 2.3 改变矩阵形状 Reshape 制定行列重排;Rot90 逆时针90;Filplr 垂直方向为轴旋转180;Flipud 水平方向为轴旋转180;Flipdim 指定方向为轴翻转矩阵 2.4 向量生成函数 Linspace(a,b)首尾为a,b的100个数;Linspace(a,b,n) Logspace(a,b)以10为底;Logspace(a,b,n);Logspace(a,pi) 2.5 矩阵信息的获取 Isempty 判断为空;Isscalar 判断为标量;Isvector 判断向量;Issparse 判断稀疏矩阵;Isa 判断指定数据类型;Iscell 判断元胞数组类型;Iscellstr 元胞字符串数组类型;Isfloat 判断浮点数;Isinteger 判断整形类型;Islogical 判断逻辑类型Isnumeric 判断数值类型;Isreal 判断实数类型;Isstruct 判断结构体类型;Length 最长维长度;Ndims 维数;Numel 元素个数;Size 指定维长度 3 数据类型

Matlab的常用函数及指令简单介绍

摘要本文从计算机语言、数学建模、网络控制系统仿真与结构化思维等方面阐述了半年来学习Matlab的心得体会与感想。由于个人知识有限在部分细节问题的理解上可能存有偏差还请老师批评指正不吝赐教。关键词Matlab语言数学建模软件网络控制系统仿真 结构化思维 - 1 - 学习Matlab快半个学期了虽然还有很多问题不是很清楚但通过实践学习我对于Matlab总算有个整体的理解而且每次上机操作都会有一定的收获和感想下面就谈谈我个人对于Matlab的一些看法。 Matlab语言 Matlab和其它语言不一样我这个学期学习的是C语言另外对于Action Script、HTML、php语言也接触过一些。C语言主要是面向过程的它的灵活性比较强可根据自己的意图编辑程序但所耗费的时间和精力比较大。例如定义变量就分为int、float、char等类型十分麻烦而Action Script与php就显得比较随意不必纠结于哪一种类型的变量比如定义Var number3Var playtrue即可。相对于前两者而言Matlab则显得更为灵活与快捷它是一门解释性语言能自动将高级语言翻译成机器语言。比如求tf2当t012345时tf的值。如果使用C语言则需要定义变量调用math函数还要应用for循环、输出函数而Matlab则不然只需输入t0:5f2.t然后回车即可。另外Matlab还配有许多常用公式操作起来十分方便例如想求出223tftftytyty在10y10y时的零输入响应应用dsolve 函数只需输入xdsolveD2y3Dy2y0y01Dy01 回车即得结果x3exp-t-2exp-2t。或许也正是Matlab语言简洁、优化的特点才使得它在学术界被广泛应用吧。 数学建模 对于数学建模而言Matlab是一款相当不错的建模辅助工具因为Matlab中有统计函数线性分析函数插值函数非线性分析函数等等这些数模必备的函数而且Matlab强大的绘图功能可使很多数学演算过程变得可视化。这些对于分析问题都很有帮助。虽然我们学习的Matlab是电子信息工程方向的但在下个学期班里的大部分同学都要参加数模竞赛

MATLAB中常用的函数

[转]MATLAB 主要函数(一) (2008-05-11 17:09:43) 转载 标签: 分类:IT matlab 函数 杂谈 MATLAB主要函数指令表(按功能分类)原贴地址:https://www.wendangku.net/doc/e18318797.html,/casularm/archive/2007/04/20/1572638.aspx 1常用指令(General Purpose Commands) 1.1通用信息查询(General information) demo 演示程序 help 在线帮助指令 helpbrowser 超文本文档帮助信息 helpdesk 超文本文档帮助信息 helpwin 打开在线帮助窗 info MATLAB 和MathWorks 公司的信息 subscribe MATLAB 用户注册 ver MATLAB 和TOOLBOX 的版本信息 version MATLAB 版本 whatsnew 显示版本新特征 1.2工作空间管理(Managing the workspace) clear 从内存中清除变量和函数 exit 关闭MATLAB load 从磁盘中调入数据变量 pack 合并工作内存中的碎块 quit 退出MATLAB save 把内存变量存入磁盘 who 列出工作内存中的变量名

whos 列出工作内存中的变量细节 workspace 工作内存浏览器 1.3管理指令和函数(Managing commands and functions) edit 矩阵编辑器 edit 打开M 文件 inmem 查看内存中的P 码文件 mex 创建MEX 文件 open 打开文件 pcode 生成P 码文件 type 显示文件内容 what 列出当前目录上的M、MAT、MEX 文件 which 确定指定函数和文件的位置 1.4搜索路径的管理(Managing the seach patli) addpath 添加搜索路径 rmpath 从搜索路径中删除目录 path 控制MATLAB 的搜索路径 pathtool 修改搜索路径 1.5指令窗控制(Controlling the command window) beep 产生beep 声 echo 显示命令文件指令的切换开关 diary 储存MATLAB 指令窗操作内容 format 设置数据输出格式 more 命令窗口分页输出的控制开关 1.6操作系统指令(Operating system commands) cd 改变当前工作目录 computer 计算机类型 copyfile 文件拷贝 delete 删除文件 dir 列出的文件 dos 执行dos 指令并返还结果

Matlab常用工具箱及常用函数

Matlab常用工具箱 MATLAB包括拥有数百个内部函数的主包和三十几种工具包.工具包又可以分为功能性工具包和学科工具包.功能工具包用来扩充MATLAB的符号计算,可视化建模仿真,文字处理及实时控制等功能.学科工具包是专业性比较强的工具包,控制工具包,信号处理工具包,通信工具包等都属于此类. 开放性使MATLAB广受用户欢迎.除内部函数外,所有MATLAB主包文件和各种工具包都是可读可修改的文件,用户通过对源程序的修改或加入自己编写程序构造新的专用工具包. Matlab Main Toolbox——matlab主工具箱 Control System Toolbox——控制系统工具箱 Communication Toolbox——通讯工具箱 Financial Toolbox——财政金融工具箱 System Identification Toolbox——系统辨识工具箱 Fuzzy Logic Toolbox——模糊逻辑工具箱 Higher-Order Spectral Analysis Toolbox——高阶谱分析工具箱 Image Processing Toolbox——图象处理工具箱 LMI Control Toolbox——线性矩阵不等式工具箱 Model predictive Control Toolbox——模型预测控制工具箱 μ-Analysis and Synthesis Toolbox——μ分析工具箱 Neural Network Toolbox——神经网络工具箱 Optimization Toolbox——优化工具箱 Partial Differential Toolbox——偏微分方程工具箱 Robust Control Toolbox——鲁棒控制工具箱 Signal Processing Toolbox——信号处理工具箱 Spline Toolbox——样条工具箱 Statistics Toolbox——统计工具箱 Symbolic Math Toolbox——符号数学工具箱 Simulink Toolbox——动态仿真工具箱 Wavele Toolbox——小波工具箱 常用函数Matlab内部常数[3] eps:浮点相对精度 exp:自然对数的底数e i或j:基本虚数单位 inf或Inf:无限大, 例如1/0 nan或NaN:非数值(Not a number),例如0/0 pi:圆周率p(= 3.1415926...) realmax:系统所能表示的最大数值 realmin:系统所能表示的最小数值 nargin: 函数的输入引数个数 nargout: 函数的输出引数个数 lasterr:存放最新的错误信息 lastwarn:存放最新的警告信息 MATLAB常用基本数学函数 abs(x):纯量的绝对值或向量的长度 angle(z):复数z的相角(Phase angle)

2第二章 Matlab基本语法

第二章 Matlab 基本语法(一般性操作) §1矩阵和数组的操作Ⅰ——创建 保存 调用 概述:矩阵是线性代数的基本运算单元,通常矩阵是含有M 行和N 列数值的矩形结构。其元素可以是实数或复数,因而可将矩阵分为实数矩阵和复数矩阵。 MATLAB 支持线性代数所定义的全部矩阵运算。软件的优势在于快捷和轻松的处理整个矩阵。通过一定的转化方法,可以将一般的数学运算转化成相应矩阵运算来处理。 在MATLAB 中把数据分为标量、矢量、矩阵和列阵。列阵指多维数组,是一大概念,在列阵中,一维数组是矢量,二维数组即为矩阵。当然,我们也可杷标量看作仅有一行一列的矩阵,把矢量看作仅有一列或一行的矩阵。 一、知识背景 1. n m ? 阶矩阵,记作n m A ?或n m ij a ?)( 如:??? ?????????mn m m n n a a a a a a a a a 212222111211 ,为m 行n 列矩阵 2. 数组:可看成是单行或单列矩阵。 3. 同型矩阵:二矩阵行数和列数相同,如n m n m B A ??,。 4. 特殊矩阵:见矩阵创建3。 二、矩阵的创建 1. 直接输入法:用指令产生数值矩阵 矩阵首尾以 [ ] 括起; 同一行中元素用逗号“,”或空格隔开; 行与行之间必须用分号“;”或按Enter 键分隔。 矩阵元素可以是数字也可以是表达式,表达式中变量必须定义。 例1:创建矩阵:? ? ? ???=6 5 43 2 1a

>> a=[1,2,3;4,5,6] a = 1 2 3 4 5 6 例2:>> x=9,y=pi/6; % 定义x ,y 变量 >> A=[3,5,sin(y);cos(y),x^2,7;x/2,5,1] % 产生矩阵A A = 3.0000 5.0000 0.5000 0.8660 81.0000 7.0000 4.5000 5.0000 1.0000 说明:%作为注释的开始标志,以后的文字不影响计算过程。 练习一: 1-1 创建矩阵:? ? ? ???=6 4 25 3 1A 1-2 创建矩阵:?? ????=sin(y) )cos(os(y) sin(x) x c B ,其中x=π/4,y=π/3。 >> x=pi/4,y=pi/3; x = 0.7854 >> B=[sin(x),cos(y);cos(x),sin(y)] B = 0.7071 0.5000 0.7071 0.8660 2. 矩阵编辑器(Matrix Editor ): (1)首先在工作区定义一个变量,可以是一简单矩阵或数字。 (2)单击工具栏的工作区浏览器(work spase browser )。弹出变量浏览器,显示各变量信息。 或单击View/ work space 弹出变量浏览器,显示各变量信息。 (3)选中所定义变量,左键双击,或单击右键,在点击“open ”,打开矩阵编辑器。也可左键单击工具按钮 ,打开矩阵编辑器。

Matlab中常用的函数集

sort (排序) xlsread ( exl文件导入) load (txt 文件,mat文件等导入) 附录Ⅰ工具箱函数汇总 Ⅰ.1 统计工具箱函数 表Ⅰ-1 概率密度函数 函数名对应分布的概率密度函数 betapdf 贝塔分布的概率密度函数 binopdf 二项分布的概率密度函数 chi2pdf 卡方分布的概率密度函数 exppdf 指数分布的概率密度函数 fpdf f分布的概率密度函数 gampdf 伽玛分布的概率密度函数 geopdf 几何分布的概率密度函数 hygepdf 超几何分布的概率密度函数normpdf 正态(高斯)分布的概率密度函数lognpdf 对数正态分布的概率密度函数nbinpdf 负二项分布的概率密度函数 ncfpdf 非中心f分布的概率密度函数nctpdf 非中心t分布的概率密度函数 ncx2pdf 非中心卡方分布的概率密度函数poisspdf 泊松分布的概率密度函数 raylpdf 雷利分布的概率密度函数 tpdf 学生氏t分布的概率密度函数unidpdf 离散均匀分布的概率密度函数unifpdf 连续均匀分布的概率密度函数weibpdf 威布尔分布的概率密度函数 表Ⅰ-2 累加分布函数 函数名对应分布的累加函数 betacdf 贝塔分布的累加函数 binocdf 二项分布的累加函数 chi2cdf 卡方分布的累加函数 expcdf 指数分布的累加函数 fcdf f分布的累加函数 gamcdf 伽玛分布的累加函数 geocdf 几何分布的累加函数 hygecdf 超几何分布的累加函数

logncdf 对数正态分布的累加函数 nbincdf 负二项分布的累加函数 ncfcdf 非中心f分布的累加函数 nctcdf 非中心t分布的累加函数 ncx2cdf 非中心卡方分布的累加函数 normcdf 正态(高斯)分布的累加函数 poisscdf 泊松分布的累加函数 raylcdf 雷利分布的累加函数 tcdf 学生氏t分布的累加函数 unidcdf 离散均匀分布的累加函数 unifcdf 连续均匀分布的累加函数 weibcdf 威布尔分布的累加函数 表Ⅰ-3 累加分布函数的逆函数 函数名对应分布的累加分布函数逆函数 betainv 贝塔分布的累加分布函数逆函数 binoinv 二项分布的累加分布函数逆函数 chi2inv 卡方分布的累加分布函数逆函数 expinv 指数分布的累加分布函数逆函数 finv f分布的累加分布函数逆函数 gaminv 伽玛分布的累加分布函数逆函数 geoinv 几何分布的累加分布函数逆函数hygeinv 超几何分布的累加分布函数逆函数logninv 对数正态分布的累加分布函数逆函数nbininv 负二项分布的累加分布函数逆函数ncfinv 非中心f分布的累加分布函数逆函数nctinv 非中心t分布的累加分布函数逆函数 ncx2inv 非中心卡方分布的累加分布函数逆函数icdf norminv 正态(高斯)分布的累加分布函数逆函数poissinv 泊松分布的累加分布函数逆函数 raylinv 雷利分布的累加分布函数逆函数 tinv 学生氏t分布的累加分布函数逆函数unidinv 离散均匀分布的累加分布函数逆函数unifinv 连续均匀分布的累加分布函数逆函数weibinv 威布尔分布的累加分布函数逆函数 表Ⅰ-4 随机数生成器函数

MATLAB常用工具箱及常用函数

常用工具箱 MATLAB包括拥有数百个内部函数的主包和三十几种工具包。工具包又可以分为功能性工具包和学科工具包。功能工具包用来扩充MATLAB的符号计算,可视化建模仿真,文字处理及实时控制等功能。学科工具包是专业性比较强的工具包,控制工具包,信号处理工具包,通信工具包等都属于此类。 开放性使MATLAB广受用户欢迎。除内部函数外,所有MATLAB主包文件和各种工具包都是可读可修改的文件,用户通过对源程序的修改或加入自己编写程序构造新的专用工具包。 Matlab Main Toolbox——matlab主工具箱 Control System Toolbox——控制系统工具箱 Communication Toolbox——通讯工具箱 Financial Toolbox——财政金融工具箱 System Identification Toolbox——系统辨识工具箱 Fuzzy Logic Toolbox——模糊逻辑工具箱 Higher-Order Spectral Analysis Toolbox——高阶谱分析工具箱 Image Processing Toolbox——图象处理工具箱 computer vision system toolbox----计算机视觉工具箱 LMI Control Toolbox——线性矩阵不等式工具箱 Model predictive Control Toolbox——模型预测控制工具箱 μ-Analysis and Synthesis Toolbox——μ分析工具箱 Neural Network Toolbox——神经网络工具箱

Optimization Toolbox——优化工具箱 Partial Differential Toolbox——偏微分方程工具箱Robust Control Toolbox——鲁棒控制工具箱 Signal Processing Toolbox——信号处理工具箱 Spline Toolbox——样条工具箱 Statistics Toolbox——统计工具箱 Symbolic Math Toolbox——符号数学工具箱 Simulink Toolbox——动态仿真工具箱 Wavele Toolbox——小波工具箱 DSP system toolbox-----DSP处理工具箱 常用函数 Matlab内部常数[2] eps:浮点相对精度 exp:自然对数的底数e i 或j:基本虚数单位 inf 或Inf:无限大,例如1/0 nan或NaN:非数值(Not a number),例如0/0 pi:圆周率p(= 3.1415926...) realmax:系统所能表示的最大数值 realmin:系统所能表示的最小数值 nargin: 函数的输入引数个数

相关文档
相关文档 最新文档