第一范文网 - 专业文章范例文档资料分享平台

Matlab教程

来源:用户分享 时间:2025/5/18 10:10:54 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

[m,n]=size(x); if m==1

m=n end

mean=sum(x)/m;

stdev=sqrt(sum(x.^2)/m-mean.^2); stat表明返回多输出变量是可能的.

又如:使用多输入变量计算矩阵秩函数

function r=rank(x,tol) % rank of a matrix s=svd(x); if(nargin==1)

tol=max(size(x))*s(1)*eps; end

r=sum(s>tol);

这个变量说明利用永久变量nargin确定输入变量的个数,变量nargout虽然这里没有使用,但它包含有输出变量的个数.

一些有用的说明:

当M函数文件第一次在Matlab运行时,它被编译并放入内存,以后使用时不用重新编译即可得到.

what命令:显示磁盘当前目录中的M文件, dir命令:列出所有文件.

一般而言,输入一个名字到Matlab,例如键入whoopie命令,Matlab用以下步骤解释: (1) 看whoopie是否为变量.

(2) 检验whoopie是否为在线函数. (3) 检验whoopie文件的当前目录.

(4) 将whoopie看成Matlab的PATH中的一个文件,在Matlab PATH目录中搜索. 如果whoopie存在,Matlab首先将其作为变量而不是作为函数.

§5.4 字符串、输入及输出

§5.4.1 echo、input、pause、keyboard

一般来说,当一个M文件运行时,文件的命令不在屏幕上显示,而echo命令则使M文件运行时,命令在屏幕上显示,这对于调试、演示相当有用.

input功能:输入Input('How many apples')给用户一个提示串,等待,然后显示用户通过键盘输入的大量表达式.可以用input命令建立驱动M文件的菜单.

与input功能相同,但功能更强的keyboard命令将计算机作为一个命令文件来调用,放入M文件中,此特性对调试或正在运行期间修改变量很有用.

pause命令:使用户暂停运行一个程序,当再按任一键时恢复执行,pause(n)等待n秒钟后再继续执行.

§5.4.2串和宏串

字符串用单个引号输入到Matlab中,例如:

s='Hello' 结果显示为:

s =

Hello

字符存在向量中,每个元素就是一个字符,如:

size(s) ans =

1 5

33

表明S为一个1×5的矩阵,有五个元素.字符以ASCII值存入,abs函数或double函数将显示以下值(即Hello的ASCII值)

abs(s) ans =

72 101 108 108 111

getstr函数,使向量作为字符显示,而不显示ASCII值.

disp可在变量中显示字符.sprintf, num2str和int2str可以将数字转换成串. 字符变量通过括号连成大串.例如: s='hello'; s=[s,' world'] s =

hello world

eval是与字符变量—起工作的函数,执行简单字符宏调用.eval( t )执行包含在t内的字符.如果t是任何Matlab表达式或语句的源字符,则字符串被解释执行.例如:

t='eye(2)', eval(t) 结果为:

ans=

1 0 0 1

又例如,给矩阵元素赋值

t='1/(i+j-1)'; for i=1:n

for j=1:n a( i, j)=eval(t);

end end

这儿有一个例子,介绍如何一起使用eval与load命令,装入十个具有顺序文件名的文件中的数据:

fname='mydata'; for i = 1:10

eval([ 'load ', fname, int2str( i )]) end §5.4.3外部程序

Matlab与外部独立程序的通讯方式可以是多种多样的,下面介绍其中的一个办法: (1) Matlab中将变量存入磁盘

(2) 运行外部程序(读数据文件,进行处理),将结果写到磁盘上 (3) 将处理后的文件装回到工作空间中

例如:用外部程序gareqn找garfield方程的结果:

function y=garfield(a,b,q,r) save gardata a,b,q,r ! gareqn load gardata

使用FORTRAN或其它语言写gareqn程序,使其可以读gardata.mat,进行处理,将结果存入文件中.

这个程序可将计算机的“连接码”提供给Matlab,在许多系统中它将新的目标码连接到程序中比物理联接要方便得多.

§5.4.4输入输出数据

可使用各种方法将其它程序和外部世界的数据送入Matlab,同样可把Matlab数据输送到外部世界,使你的程序以Matlab使用的文件形式直接计算数据.

最好的方法取决于多少数据,数据是否可读,什么形式等: (1) 清晰的元素表输入:

34

如果你有少量数据,比如说小于10~15个元素,使用方括号[]输入.

(2) 使用文本编辑建立命令文件,将数据列为清晰的元素表输入.如果数据不是可读形式,又不得不以一种方法键入,可以重复运行M文件,重复修改数据.

(3) 如果数据以ASCII形式存贮,并有固定长度,行尾有回车符,各数间有空格的文件称为flat file(ASCII的flat file可由普通文本编辑来编辑),flat file通过load命令直接读进Matlab,结果存入名为文件名的变量中去.

(4) 将数据文件译成Matlab文件形式,使用load命令,translate程序由Matlab中的应用程序库支持,translate程序将ASCII文件、二进制文件、FORTRAN非格式文件和DIF文件转换为Matlab使用的特定的MAT文件,当磁盘文件中存有大量数据时,这个方法输入最好.

Matlab数据输出到外部世界的方法:

(1) 小矩阵时:使用diary命令建立日志文件,在文件中列出变量,用文本编辑处理日志文件,日志的输出包括运行中的Matlab命令.

(2) 使用save命令存入变量,退出Matlab,用translate程序将MAT文件转换成任一种其它文件形式.

第六节 Matlab符号运算

Matlab本身并没有符号计算功能,1993年通过购买Maple的使用权后,开始具备符号运算的功能.符号运算的类型很多,几乎涉及数学的所有分支.

§6.1 Matlab符号运算的工作流程

§6.1.1工作过程

§6.1.2 核心工具

sym函数 VS syms 语句 sym函数:构造符号变量和表达式: a=sym('a') (Construct symbolic numbers, variables and objects)

syms语句:构造符号对象的简捷方式(Short-cut for constructing symbolic objects) §6.1.3 符号变量确定原则

(1)除了i 和j之外,字母位置最接近x的字母;若距离相等,则取ASCII码大的; (2)若没有除了i 与j以外的字母,则视x为默认的符号变量;

(3)可利用函数findsym(string,N)来询问在众多符号中,哪N个为符号变量.例如:键入findsym(3*a*b+y^2,1),即可得到答案y.更多的例子见下表:

符号表达式 默认符号变量 a*x^2+b*x+c x 1/(4+cos(t)) t 4*x/y x 2*a+b b 2*i x

35

§6.2 Matlab的六大常见符号运算

§6.2.1 因式分解

syms x f=x^6+1; s=factor(f) 结果为:

s=(x^2+1)*(x^4-x^2+1) §6.2.2 计算极限

求极限:

(1) L?limh?0ln(x?h)?ln(x),hxn)n

(2)M?lim(1?n?? syms h n x

L=limit('(log(x+h)-log(x))/h',h,0) %%单引号可省略掉 M=limit('(1-x/n)^n',n,inf) 结果为: L =1/x

M =exp(-x) §6.2.3 计算导数

dydyd2yy?sinax,求A?,B?,C?dxdadx2.

syms a x; y=sin(a*x);

A=diff(y,x) B=diff(y,a) C=diff(y,x,2) 结果为:

A = cos(a*x)*a B = cos(a*x)*x

C = -sin(a*x)*a^2

§6.2.4 计算不定积分、定积分、反常积分

x2?1I?dx22(x?2x?2), ?/2cosxJ?dxsinx?cosx0,

??K??0??e?xdx.

2 syms x

f=(x^2+1)/(x^2-2*x+2)^2; g=cos(x)/(sin(x)+cos(x)); h=exp(-x^2); I=int(f)

J=int(g,0,pi/2)

36

搜索更多关于: Matlab教程 的文档
Matlab教程.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c20iqy5eewy05ej21u7v3_8.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top