matlab教程详解 (6)

matlab教程详解 (6)
matlab教程详解 (6)

第七章 M 文件和面向对象编程

假如读者想灵活运用MATLAB 去解决实际问题,想充分调动MATLAB ——科学技术资源,想理解MATLAB 版本升级所依仗的基础,那么本章内容将十分有用。 本章将涉及比较深层的MATLAB 内容:脚本;函数(一般函数、内联函数、子函数、私用函数、方法函数);函数句柄的创建和使用;程序调试和剖析;数据结构(类、对象);重载和继承;面向对象编程。本章配备了许多精心设计的算例。这些算例是完整的,可直接演练的。读者通过这些算例,将真切感受到抽象概念的内涵、各指令间的协调,将从感知上领悟到面向对象编程的优越和至关要领。 本章新增了第7.7节,专门阐述函数句柄的创建和使用,它适用于MATLAB6.x 版;而新增的第7.9.3节中关于程序性能优化的内容,则仅适用于MATLAB6.5以后版。

7.1 入门

【例7.1-1】通过M 脚本文件,画出下列分段函数所表示的曲面。

???

?

???-≤+≤+<->+=+-------15457.0117575.015457.0),(215.175.375.0216215.175.375.02112122212212

122x x e x x e x x e x x p x x x x x x x x

(1)

图 7.1-1

[exm0701_1.m]

%exm0701_1.m

a=2;b=2; % <2>

clf;

x=-a:0.2:a;y=-b:0.2:b; for i=1:length(y)

for j=1:length(x) if x(j)+y(i)>1

z(i,j)=0.5457*exp(-0.75*y(i)^2-3.75*x(j)^2-1.5*x(j)); elseif x(j)+y(i)<=-1

z(i,j)=0.5457*exp(-0.75*y(i)^2-3.75*x(j)^2+1.5*x(j)); else z(i,j)=0.7575*exp(-y(i)^2-6.*x(j)^2); end end end

axis([-a,a,-b,b,min(min(z)),max(max(z))]); colormap(flipud(winter));surf(x,y,z);

(2)

exm0701_1

图 7.1-2

【例7.1-2】通过M 函数文件画出上例分段函数的曲面。

exm0701_2(2,2)

7.2 M 文本编辑器 7.3 MATLAB 控制流

7.3.1 for 循环结构

【例7.3.1-1】一个简单的for 循环示例。

for i=1:10;

x(i)=i; end; x x =

1 2 3 4 5 6 7 8 9 10

7.3.2 while 循环结构

【例7.3.2-1】Fibonacci 数组的元素满足Fibonacci 规则:12+++=k k k a a a ,),2,1( =k ;

且121==a a 。现要求该数组中第一个大于10000的元素。

a(1)=1;a(2)=1;i=2; while a(i)<=10000 a(i+1)=a(i-1)+a(i); i=i+1; end;

i,a(i), i = 21 ans =

10946

7.3.3 if-else-end 分支结构

【例7.3.3-1】一个简单的分支结构。

cost=10;number=12; if number>8

sums=number*0.95*cost; end,sums sums =

114.0000

【例7.3.3-2】用for 循环指令来寻求Fibonacc 数组中第一个大于10000的元素。

n=100;a=ones(1,n); for i=3:n

a(i)=a(i-1)+a(i-2); if a(i)>=10000 a(i), break; end; end,i ans =

10946 i =

21

7.3.4 switch-case 结构

【例7.3.4-1】学生的成绩管理,用来演示switch 结构的应用。

clear; %

for i=1:10;a{i}=89+i;b{i}=79+i;c{i}=69+i;d{i}=59+i;end;c=[d,c]; Name={' Jack','Marry','Peter',' Rose',' Tom'}; Mark={72,83,56,94,100};Rank=cell(1,5); %

S=struct('Name',Name,'Marks',Mark,'Rank',Rank); %

for i=1:5

switch S(i).Marks case 100

S(i).Rank='满分'; case a

S(i).Rank=' 优秀';

case b

S(i).Rank=' 良好';

case c

S(i).Rank=' 及格';

otherwise

S(i).Rank='不及格';

end

end

%

disp(['学生姓名 ',' 得分 ',' 等级']);disp(' ')

for i=1:5;

disp([S(i).Name,blanks(6),num2str(S(i).Marks),blanks(6),S(i).Rank]); end;

学生姓名得分等级

Jack 72 及格

Marry 83 良好

Peter 56 不及格

Rose 94 优秀

Tom 100 满分

7.3.5try-catch结构

3( 魔方阵的行进行援引,当“行下标”超出【例7.3.5-1】try-catch结构应用实例:对)3

魔方阵的最大行数时,将改向对最后一行的援引,并显示“出错”警告。

clear,N=4;A=magic(3);

try

A_N=A(N,:)

catch

A_end=A(end,:)

end

lasterr

A_end =

4 9 2

ans =

Index exceeds matrix dimensions.

7.3.6控制程序流的其它常用指令

7.3.6.1return指令

7.3.6.2input和keyboard指令

7.3.6.3yesinput指令

7.3.6.4pause指令

7.3.6.5break指令

7.3.6.6error和warning指令

7.4脚本文件和函数文件

7.4.1M脚本文件

7.4.2M函数文件

7.4.3局部变量和全局变量

7.4.4M文件的一般结构

【例7.4.4-1】M函数文件示例。本例演示:(A)编写一个画任意半径任意色彩线型的圆。(B)完整函数文件的基本结构。(C)函数文件各基本组成部分的作用。

[exm07044_1.m]

function sa = exm07044_1(r,s)

%CIRCLE

%

%

%

if nargin>2

error('输入宗量太多。');

end;

if nargin==1

s='b';

end;

clf;

t=0:pi/100:2*pi;

x=r*exp(i*t);

if nargout==0

plot(x,s);

else

sa=pi*r*r;

fill(real(x),imag(x),s)

end

axis('square')

7.4.5P码文件

7.4.5.1语法分析过程和伪代码

7.4.5.2P码文件的预生成

7.4.5.3内存中P码文件的列表和清除

7.4.6MATLAB的搜索过程

7.5变量的检测传递和限权使用函数

7.5.1输入输出宗量检测指令

7.5.2“变长度”输入输出宗量

【例7.5.2-1】变长度宗量使用示例。

(1)

[exm07052_1.m]

function varargout = exm07052_1(r,varargin)

%RINGZY Plot a ring and calculate the area of the ring.

%

%

vin=length(varargin);Nin=vin+1;% <11>

error(nargchk(1,Nin,nargin)) %

if nargout>6 %

error('Too many output arguments')

end

t=0:pi/20:2*pi;x=r*exp(i*t);s=pi*r*r;

if nargout==0

switch Nin

case 1

plot(x,'b')

case 2

r2=varargin{1}; %<22> x2=r2*exp(i*t);

plot(x,'b');hold on ;plot(x2,'b');hold off

otherwise

r2=varargin{1}; %<26> x2=r2*exp(i*t);

plot(x,varargin{2:end});hold on % <28>

plot(x2,varargin{2:end});hold off % <29>

end;

axis('square')

else

varargout{1}=real(x);varargout{2}=imag(x); %<33> varargout{5}=pi*r*r;varargout{6}=[]; %<34> if Nin>1

r2=varargin{1}; %<36> x2=r2*exp(i*t);

varargout{3}=real(x2);varargout{4}=imag(x2); %<38> varargout{6}=pi*(r^2-r2^2); %<39> end;

end

(2)

r1=1;r2=3;

[x1,y1,x2,y2,s1,s2]=exm07052_1(r1);

[x1,y1,x2,y2]=exm07052_1(r1,r2);

[x1,y1,x2,y2,s1,s2]=exm07052_1(r1,r2);

(3)

r1=1;r2=0.6;

subplot(1,3,1),exm07052_1(r1,r2),

subplot(1,3,2),exm07052_1(r1,r2,'Marker','o')

7.5.3跨空间变量传递

7.5.3.1跨空间计算串表达式的值

【例7.5.3.1-1】本例演示:(A)编写绘制正多边形或圆的程序。(B)子函数与(母)函数的关系。(C)各种不同的工作空间。(D)evalin运行机理与eval的异同。

(1)

[exm070531_1.m]

function y1=exm070531_1(a,s)

t=(0:a)/a*2*pi;

y1=subevalinzzy(4,s);

%------------ subfunction -------------

function y2=subevalinzzy(a,s)

t=(0:a)/a*2*pi;ss='a*exp(i*t)';

switch s

case {'base','caller'}

y2=evalin(s,ss);

case 'self'

y2=eval(ss);

end

(2)

clear,a=30;t=(0:a)/a*2*pi;sss={'base','caller','self'};

for k=1:3

y0=exm070531_1(8,sss{k});

subplot(1,3,k)

plot(real(y0),imag(y0),'r','LineWidth',3),axis square image

end

7.5.3.2跨空间赋值

【例7.5.3.2-1】assignin运作机理示范。

(1)

[exm070532_1.m]

function y=exm070532_1(x)

y=sqrt(x);t=x^2;

assignin('base','yy',t)

(2)

clear;x=4;y=exm070532_1(x);

disp([blanks(5),'x',blanks(5),'y',blanks(4),'yy']),disp([x,y,yy]) x y yy

4 2 16

7.5.4子函数和私用函数

7.5.4.1子函数

7.5.4.2私用函数

7.6串演算函数

7.6.1eval

【例7.6.1-1】计算“表达式”串,产生向量值。

clear,t=pi;cem='[t/2,t*2,sin(t)]';y=eval(cem)

y =

1.5708 6.2832 0.0000

【例7.6.1-2】计算“语句”串,创建变量。

clear,t=pi;eval('theta=t/2,y=sin(theta)');who

theta =

1.5708

y =

1

Your variables are:

t theta y

【例7.6.1-3】计算“替代”串。

A=ones(2,1);B=ones(1,3);c=eval('B*A','A*B'),errmessage=lasterr

c =

1 1 1

1 1 1

errmessage =

Error using ==> *

Inner matrix dimensions must agree.

【例7.6.1-4】计算“合成”串。

CEM={'cos','sin','tan'};

for k=1:3

theta=pi*k/12;

y(1,k)=eval([CEM{1},'(',num2str(theta),')']);

end

y

y =

0.9659 0.8660 0.7071

7.6.2feval

【例7.6.2-1】feval 和eval 运行区别之一:feval的FN绝对不能是表达式。

x=pi/4;Ve=eval('1+sin(x)')

Ve =

1.7071

Vf=feval('1+sin(x)',x)

??? Error using ==> feval

Invalid function name '1+sin(x)'.

【例7.6.2-2】feval 和eval 调用区别:feval 的FN只接受函数名。本例两种方法以后者为好。randn('seed',1);A=rand(2,2);

[ue,de,ve]=eval('svd(A)');

disp('Results by eval');disp([ue,de,ve]);disp(blanks(1))

[uf,df,vf]=feval('svd',A);

disp('Results by feval');disp([uf,df,vf])

Results by eval

-0.9193 -0.3936 1.2212 0 -0.7897 -0.6135

-0.3936 0.9193 0 0.2633 -0.6135 0.7897

Results by feval

-0.9193 -0.3936 1.2212 0 -0.7897 -0.6135

-0.3936 0.9193 0 0.2633 -0.6135 0.7897

7.6.3内联函数

7.6.3.1内联函数的创建

7.6.3.2涉及内联函数性质的指令

7.6.3.3内联函数创建和应用示例

【例7.6.3.3-1】演示:内联函数的第一种创建格式;使内联函数适于“数组运算”。clear,F1=inline('sin(rho)/rho')

F1 =

Inline function:

F1(rho) = sin(rho)/rho

f1=F1(2)

f1 =

0.4546

FF1=vectorize(F1)

xx=[0.5,1,1.5,2];ff1=FF1(xx)

FF1 =

Inline function:

FF1(rho) = sin(rho)./rho

ff1 =

0.9589 0.8415 0.6650 0.4546

【例7.6.3.3-2】演示:第一种内联函数创建格式的缺陷;含向量的多宗量输入的赋值。

G1=inline('a*exp(x(1))*cos(x(2))'),G1(2,[-1,pi/3])

G1 =

Inline function:

G1(a) = a*exp(x(1))*cos(x(2))

??? Error using ==> inline/subsref

Too many inputs to inline function.

G2=inline('a*exp(x(1))*cos(x(2))','a','x'),G2(2,[-1,pi/3])

G2 =

Inline function:

G2(a,x) = a*exp(x(1))*cos(x(2))

ans =

0.3679

【例7.6.3.3-3】演示:产生向量输入、向量输出的内联函数;这种向量函数的调用方法。Y2=inline('[x(1)^2;3*x(1)*sin(x(2))]')

argnames(Y2)

Y2 =

Inline function:

Y2(x) = [x(1)^2;3*x(1)*sin(x(2))]

ans =

'x'

x=[4,pi/6];

y2=Y2(x)

y2 =

16.0000

6.0000

【例7.6.3.3-4】演示:最简练格式创建内联函数;内联函数可被feval 指令调用。

Z2=inline('P1*x*sin(x^2+P2)',2)

Z2 =

Inline function:

Z2(x,P1,P2) = P1*x*sin(x^2+P2)

z2=Z2(2,2,3)

fz2=feval(Z2,2,2,3)

z2 =

2.6279

fz2 =

2.6279

7.7函数句柄

7.7.1函数句柄的创建和观察

【例7.7.1-1】为MATLAB的“内建”函数创建函数句柄,并观察其内涵。(1)

hsin=@sin;

(2)

class(hsin)

size(hsin)

ans =

function_handle

ans =

1 1

(3)

CC=functions(hsin)

CC =

function: 'sin'

type: 'overloaded'

file: 'MATLAB built-in function'

methods: [1x1 struct]

(4)

CC.methods.sym

ans =

d:\matlab6p5\toolbox\symbolic\@sym\sin

7.7.2函数句柄的基本用法

【例7.7.2-1】本例通过函数及其句柄演示若干基本用法。

(1)

fhandle=str2func('sin');

(2)

ys=sin(pi/4)

yfold=feval('sin',pi/4)

yfnew=feval(fhandle,pi/4)

ys =

0.7071

yfold =

0.7071

yfnew =

0.7071

(3)

Alpha=sym('pi/4');

yss=sin(Alpha)

yfold=feval('sin',Alpha)

ynews=feval('sin',Alpha)

yss =

1/2*2^(1/2)

yfold =

1/2*2^(1/2)

ynews =

1/2*2^(1/2)

(4)

xold=fminbnd('sin',0,2*pi)

xnew=fminbnd(fhandle,0,2*pi)

xold =

4.7124

xnew =

4.7124

【例7.7.2-2】本例演示:如何避免创建“无效函数句柄“问题。

(1)

Hy2=@fhzzy %fhzzy.m是随书光盘mfiles文件夹上的一个函数文件。Hy2 =

@fhzzy

(2)

class(Hy2)

size(Hy2)

ans =

function_handle

ans =

1 1

(3)

feval(Hy2,'line');

??? Error using ==> feval

Undefined function 'fhzzy'.

【例7.7.2-3】自建函数及其句柄的使用。

(1)

[fhzzy.m]

function Hr=fhzzy(flag )

% fhzzy

%

%

t=(0:100)/100*2*pi;

x=sin(t);

y=cos(t);

Hr=@cirline;

feval(Hr,flag,x,y,t)

% -------------subfunction---------------------------

function cirline(wd,x,y,t)

%

%

switch wd

case 'line'

plot(t,x,'b' ,t,y,'r','LineWidth',2)

case 'circle'

plot(x,y,'g.','MarkerSize',30),

axis square off

otherwise

error('输入宗量只能取 ''line'' 或 ''circle'' ! ')

end

shg

(2)

Hy3=@fhzzy

fhzzy('line');

Hy3 =

(3)

which('fhzzy')

fhzzy not found.

(4)

fhzzy('line')

feval('fhzzy','line')

??? Undefined function or variable 'fhzzy'. (5)

feval(Hy3,'line');

【例7.7.2-4】子函数句柄的创建与使用。

(1)

HCL=fhzzy('circle')

HCL =

@cirline

图7.7-2

(2)

tt=(0:100)/100*2*pi;

xx=sin(tt);

yy=cos(tt);

cirline('circle',xx,yy,tt);

feval('circle',xx,yy,tt)

??? Undefined function or variable 'cirline'.

(3)

feval(HCL,'circle',xx,yy,tt)

7.8创建用户工具箱

7.8.1MATLAB对工具箱文件的管理特点

7.8.2建立用户工具箱须知

7.9调试和剖析

7.9.1直接调试法

7.9.2调试器的使用

7.9.2.1图形式调试器

图7.9-1

7.9.2.2调试器应用示例

【例7.9.2.2.-1】本例的目标:对于任意随机向量,画出鲜明标志该随机向量均值、标准差

(1)

[exm070922_1.m]

function [nn,xx,xmu,xstd]=exm070922_1(x)

%

xmu=mean(x);

xstd=std(x);

[nn,xx]=hist(x);

if nargout==0

barzzy0(nn,xx,xmu,xstd) %<7> end

[barzzy0.m]

function barzzy0(nn,xx,xmu,xstd)

%

%

clf,

bar(xx,nn);hold on

Ylimit=get(gca,'YLim');

yy=0:Ylimit(2);

xxmu=xmu*size(yy);

xxL=xxmu/xmu*(xmu-xstd);

xxR=xxmu/xmu*(xmu+xstd);

plot(xxmu,yy,'r','Linewidth',3) %<11> plot(xxL,yy,'rx','MarkerSize',8)

plot(xxR,yy,'rx','MarkerSize',8),hold off

(2)

randn('seed',1),x=randn(1,100);exm070922_1(x);

??? Error using ==> plot

Vectors must be the same lengths.

Error in ==> D:\Master6\mfile\barzzy0.m

On line 11 ==> plot(xxmu,yy,'r','Linewidth',3) %<11> Error in ==> D:\Master6\mfile\exm070922_1.m

(3)

(4)

(5)

图7.9-3

图7.9-4 (7)

图7.9-5 (9)

7.9.3MATLAB程序的性能优化

7.9.3.1提高MATLAB运行速度的有效措施

7.9.3.2JIT 和加速器的加速能力

【例7.9.3.2-1】试验JIT和加速器对M文件的加速作用。

7.9.3.3程序性能的剖析

【例7.9.3.3-1】演示界面式剖析器的使用。本例被剖析文件relaxzzy.m可从随书光盘的mfiles 目录上得到。

(1)

图7.9-6

(2)

方法一:

方法二:

(3)

图7.9-7

图7.9-8

7.10面向对象编程

7.10.1概念综述

7.10.1.1类和对象

7.10.1.2面向对象编程的内涵

(1)创建类目录

(2)选定待建类的数据结构

(3)对象构造函数

(4)显示函数

(5)与其他类之间的转换函数

(6)其他重载函数和重载运算

7.10.2面向对象编程应用示例

【例7.10.2-1】本例演示:创建“先进先出”FIFO队列queue类的全过程。在本例中,读者应充分注意:构架域(Fields of a structure array)和定义在其上的方法函数(Method function)之间的关系。

(1)

(2)

(3)

[@queue\queue.m]

function q=queue(v)

%@QUEUE\QUEUE

% 调用格式

%

%

superiorto('double','sparse','struct','cell','char','inline','sym');

% <6>

if nargin>1;error('Too many arguments.');end;

if nargin==0 %

q.value=[];

https://www.360docs.net/doc/3a5676616.html,='';

q=class(q,'queue');

elseif isa(v,'queue'); %

q=v; %

else %

q.value=v; %

https://www.360docs.net/doc/3a5676616.html,=inputname(1);

if isempty(https://www.360docs.net/doc/3a5676616.html,)

https://www.360docs.net/doc/3a5676616.html,=['(' class(v) ')'];

end

q=class(q,'queue'); % <20>

end

(4)

[@queue\display.m]

function display(q,ki,kj)

%QUEUE\DISPLAY

% 调用格式

%

%

%

if nargin==0;error('缺少输入宗量,即被显示对象!');end

switch nargin

Matlab中文简明教程

MatLab简介 MATLAB是什么? 典型的使用包括: 数学和计算 算术发展模型, 模拟,和原型 数据分析,开发,和可视化 科学和工程图学 应用发展包括图形用户界面设计 MATLAB表示矩阵实验室。 MATLAB系统 MATLAB系统由5主要的部分构成: 1. MATLAB语言。这是高阶的矩阵/数组语言,带控制流动陈述,函数,数据结构,输入/输出,而且面向目标的编程特点。 Ops 操作符和特殊字符。 Lang 程序设计语言作。 strfun 字符串。 iofun 输入/输出。 timefun 时期和标有日期。 datatypes数据类型和结构。 2. MATLAB工作环境。这是你作为MATLAB用户或程序编制员的一套工具和设施。 3. 制图这是MATLAB制图系统。它为2维上,而且三维的数据可视化,图象处理,动画片制作和表示图形包括高阶的指令在内。它也为包括低阶的指令在内,允许你建造完整的图形用户界面(GUIs),MATLAB应用。制图法功能在MATLAB工具箱中被组织成5文件夹: graph2d 2-的维数上的图表。 graph3d 三维的图表。 specgraph 专业化图表。 graphics 制图法。 uitools 图形用户界面工具。 4. MATLAB的数学的函数库。数学和分析的功能在MATLAB工具箱中被组织成8文件夹。 elmat 初步矩阵,和矩阵操作。 elfun 初步的数学函数。 specfun 专门的数学函数。

matfun 矩阵函数-用数字表示的线性的代数。 datafun 数据分析和傅立叶变换。 polyfun 插入物,并且多项式。 funfun 功能函数。 sparfun 稀少矩阵。 5. MATLAB应用程序接口(API)。这是允许你写C、Fortran语言与MATLAB交互。 关于 Simulink Simulink ? MATLAB为做非线性的动态的系统的模拟实验的交互式的系统。它是允许你通过把方框图拉到屏幕,灵活地窜改它制作系统的模型的用图表示的鼠标驱动的程序。实时工作室?允许你产生来自你的图表块的C代码,使之能用于各种实时系统。 关于工具箱 工具箱是为了解答特别种类的问题扩展MATLAB环境的MATLAB函数的综合的(M-文件)收集 MatLab工作环境 命令窗口 若输入 A = [1 2 3; 4 5 6; 7 8 10] 按下回车键后显示如下 A = 1 2 3 4 5 6 7 8 10 清除命令窗口 clc 这并不清除工作间,只是清除了显示,仍可按上箭头看到以前发出的命令

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

matlab7.0详细安装教程

Matlab7.0安装教程详解 开始出现不能 1:在电脑——属性——高级——环境变量里面的temp和tep什么的全部该成一样的中间不能有空格的如D:\temp 2:你的管理员身份不能是中文的 3:在你的盘里面安装一个文件夹和你改变的一样,如D:\temp 4:安装包所在的文件夹不能有中文,不能是2级以上的文件夹,就是安装包最好直接放在哪个盘里面 5:安装时候名字什么都要是中文 6:安装时安装的地方所在的文件夹不能有中文,不能有空格(如progrem files,错) 7:安装完成可以把电脑——属性——高级——环境变量里面的temp和tep改回来 首先,下载一个安装压缩包,网上都有,百度一下就可以 二,要配置环境变量,如下:右键我的电脑(计算机)——属性——高级系统设置——在高级选项卡中,点环境变量——在系统变量中,吧TEMP、TMP的路径改为C:\temp 如图1 图1 三、在C盘下建一个临时文件夹(安装时用) 图2 四、直接双击压缩包中的setup(注意不用解压缩)如图3

图3 图4 五、如图4所示在红线内属于序列号。有以下序列号可供选择: Matlab 7 (R14) 注册码1: 14-13299-56369-16360-32789-51027-35530-39910-50517-56079-43171-436 96-14148-64597-46518-35191-10070-58980-25665-36629-51033-46438-011 27-52395-28569-20030-38795-14563-11876-23292-58825-37547-05827-263 97 Matlab 7 (R14) 注册码2: 14-58204-39252-07634-11570-16849-09455-22809-05445-13616-29058-082 76-06885-12215-41987-21894-60423-57622-18647-58411-24238-20443-590

matlab7.1安装教程

安装方法: 1.解压crack 2.打开CD1(不需要要解压),双击setup.exe,进行安装,(crack文件夹中有PLP)。 3.当安装过程中提示插入CD2时,先点Browse,然后打开下载的CD2(不需要要解压),双击setup.exe,注意观察插入光盘的对话框中(就是点了Browse后的对话框)多了哪一个文件,再选择那个文件,确认,OK,就可以继续安装了 4.CD3的安装方法跟CD2一样。安装完成后会出现两个对话框,关掉就行了。 首先下载 http://119.147.41.16/down?cid=CDCA082456D4DFEFF6C7FC985C9910A3748EBF38&t=2&fm t=&usrinput=matlab7.1下载&dt=0&ps=0_0&rt=0kbs&plt=0 然后打开下载的文件,如图打开setup.exe(一般不用解压,解压有可能安装不成功) 然后根据向导一步一步操作.

1.安装完成后,打不开Matlab,弹出一个警告的的错误,一般是你的桌面主题不兼容,换一个主题,或者换成经典视图即可解决. 2.如果打开Matlab如果自动关闭,就看下面操作:

解决如下: 加一个系统的环境变量:“我的电脑右键”--“属性”--“高级”--“环境变量”--“新建” 名称:BLAS_VERSION 值:matlab安装目录atlas_Athlon.dll 例如:图片中我装在D盘的MA TLAB7下,所以值为: D:\MATLAB7\bin\win32\atlas_Athlon.dll 这个时候在打开MA TLAB就不会主动关闭了。 3.成功打开后如果出现--D:\MATLAB7\toolbox\exlink\info.xml中\name> error 其实这对你没什么影响,但是我们可以在D:\MA TLAB7\toolbox\exlink文件夹下,用记事本打开info.xml,在里面找到 \name>改为<\name> 这个时候不出其他问题的话就安装完成了. 呵呵简单吧!这是我自己安装以及帮同学安装出现的问题 1.五、如图4所示在红线内属于序列号。有以下序列号可供选择: Matlab 7 (R14) 注册码1: 14-13299-56369-16360-32789-51027-35530-39910-50517-56079-43171-43696-14148-64597-46518-35191-10070-58980-25665-36629-51033-464 38-01127-52395-28569-20030-38795-14563-11876-23292-58825-37547-05827-26397 Matlab 7 (R14) 注册码2: 14-58204-39252-07634-11570-16849-09455-22809-05445-13616-29058-08276-06885-12215-41987-21894-60423-57622-18647-58411-24238-204 43-59027-07209-27706-28292-14609-15393-48293-13036-12293-43713-57876-43362 Matlab 7 (R14) 注册码3: 14-44889-04614-04275-46147-23559-43066-41714-23083-65272-04997-17469-27919-17226-59862-27901-53983-56217-20094-53460-62647-581 66-24499-35558-19511-44882-53016-25658-61109-03776-34505-00776-15813-07183

matlab7.0安装详细教程

matlab7.0安装详细教程 matlab7.0安装,详细步骤。在matlab7.0的安装过程中,多数人都会出现,这样或那样的问题。在此,笔者结合自己装matlab的亲自体验结合网络知识,特制作本经验,希望能给大家带来帮助。 工具/原料 matlab7.0安装包 步骤/方法 1.要配置环境变量,如下:右键我的电脑(计算机)——属性——高级系统 设置——在高级选项卡中,点环境变量——在系统变量中,吧TEMP、TMP 的路径改为C:\temp 如图1 图1 2.在C盘下建一个临时文件夹(安装时用) 图2 3.直接双击压缩包中的setup(注意不用解压缩)如图 3

图3 4.图 4 五、如图4所示在红线内属于序列号。有以下序列号可供选择: Matlab 7 (R14) 注册码1: 14-13299-56369-16360-32789-51027-35530-39910-50517-56079-43171-43696-14148-64597-46518-35191-10070-58980-25665-36629-51033-464 38-01127-52395-28569-20030-38795-14563-11876-23292-58825-37547-05827-26397 Matlab 7 (R14) 注册码2: 14-58204-39252-07634-11570-16849-09455-22809-05445-13616-29058-08276-06885-12215-41987-21894-60423-57622-18647-58411-24238-204 43-59027-07209-27706-28292-14609-15393-48293-13036-12293-43713-57876-43362 Matlab 7 (R14) 注册码3: 14-44889-04614-04275-46147-23559-43066-41714-23083-65272-04997-17469-27919-17226-59862-27901-53983-56217-20094-53460-62647-581 66-24499-35558-19511-44882-53016-25658-61109-03776-34505-00776-15813-07183

MATLAB基础教程薛山第二版课后习题答案讲解

《MATLAB及应用》实验指导书《MATLAB及应用》实验指导书 班级: T1243-7 姓名:柏元强 学号: 20120430724 总评成绩: 汽车工程学院 电测与汽车数字应用中心

目录 实验04051001 MATLAB语言基础 (1) 实验04051002 MATLAB科学计算及绘图 (18) 实验04051003 MATLAB综合实例编程 (31)

实验04051001 MATLAB语言基础 1实验目的 1)熟悉MATLAB的运行环境 2)掌握MATLAB的矩阵和数组的运算 3)掌握MATLAB符号表达式的创建 4)熟悉符号方程的求解 2实验内容 第二章 1.创建double的变量,并进行计算。 (1)a=87,b=190,计算 a+b、a-b、a*b。 clear,clc a=double(87); b=double(190); a+b,a-b,a*b (2)创建 uint8 类型的变量,数值与(1)中相同,进行相同的计算。 clear,clc a=uint8(87); b=uint8(190); a+b,a-b,a*b 2.计算: (1) () sin 60

(2) e3 (3) 3cos 4??π ??? clear,clc a=sind(60) b=exp(3) c=cos(3*pi/4) 3.设2u =,3v =,计算: (1) 4 log uv v (2) () 2 2 e u v v u +- (3) clear,clc u=2;v=3; a=(4*u*v)/log(v) b=((exp(u)+v)^2)/(v^2-u) c=(sqrt(u-3*v))/(u*v) 4.计算如下表达式: (1) ()() 3542i i -+ (2) () sin 28i - clear,clc (3-5*i)*(4+2*i) sin(2-8*i) 5.判断下面语句的运算结果。 (1) 4 < 20 (2) 4 <= 20

matlab入门教程(第八章)

第 8 章 Notebook Notebook 的功能在于:使用户能在Word环境中“随心所欲地享用”MATLAB的浩瀚科技资源,为用户营造融文字处理、科学计算、工程设计于一体的完美工作环境。 MATLAB Notebook 制作的M-book文档不仅拥有 MS-Word 的全部文字处理功能,而且具备MATLAB无与伦比的数学解算能力和灵活自如的计算结果可视化能力。它既可以看作解决各种计算问题的字处理软件,也可以看作具备完善文字编辑功能的科技应用软件。 M-book文档最显著的特点是它的“活”性: ●它为论文、科技报告、讲义教材、学生作业的撰写营造了文字语言思维和科学计算思维 的和谐环境。 ●用M-book写成的电子著作、电子文稿、讲义教材不仅图文并茂,而且动静结合。那些 由MATLAB指令构成的例题、演示,都可供读者亲自操作,举一反三,从而在“手脑并用”的环境中由此及彼、由浅入深。 8.1Notebook的配置和启动 8.1.1Notebook的配置 (1)与MATLAB适配的Word 随MATLAB版本的升级,与其适配的版本也会发生变化。以MATLAB R2006a为例,能用来配置Notebook环境的Word版本是2000,2002,2003。 (2)Notebook的配置 在Windows已经装有前述Word版本的前提下,在MATLAB中配置Notebook环境十分简便。只要在MATLAB指令窗中运行以下指令,配置过程将自动进行。 notebook –setup 假如指令窗中出现如下信息,就表示配置成功。 Setup complete 8.1.2Notebook的启动 一创建新的M-book文件 (1)在Word 默认窗口(即Normal.dot)下创建新的M-book文档 ●选择Word 窗口的下拉菜单项{文件:新建} ; ●在弹出的对话框中,选择“M-book”模板,按 [确定] 键; ●于是,Word 的窗口由原先的默认式样变成“M-book”式样(如图8.1-1所示),自 动开启一个新的MATLAB作为其服务器,而不管此前Windows平台上是否已经开启了MATLAB。 ●注意:M-book模板引出的MATLAB与直接开启的MATLAB的当前目录位置有所不 同。前者的当前目录是matlab\bin\win32。为了保证MATLAB正常工作,建议读者把目录改置为matlab\work。

Matlab7.1安装教程及安装问题

首先下载 http://119.147.41.16/down?cid=CDCA082456D4DFEFF6C7FC985C9910A3748EBF38&t=2&fm t=&usrinput=matlab7.1下载&dt=0&ps=0_0&rt=0kbs&plt=0 然后打开下载的文件,如图打开setup.exe(一般不用解压,解压有可能安装不成功) 然后根据向导一步一步操作.

1.安装完成后,打不开Matlab,弹出一个警告的的错误,一般是你的桌面主题不兼容,换一个主题,或者换成经典视图即可解决. 2.如果打开Matlab如果自动关闭,就看下面操作: 解决如下: 加一个系统的环境变量:“我的电脑右键”--“属性”--“高级”--“环境变量”--“新建” 名称:BLAS_VERSION 值:matlab安装目录atlas_Athlon.dll 例如:图片中我装在D盘的MA TLAB7下,所以值为: D:\MATLAB7\bin\win32\atlas_Athlon.dll 这个时候在打开MA TLAB就不会主动关闭了。 3.成功打开后如果出现--D:\MATLAB7\toolbox\exlink\info.xml中\name> error 其实这对你没什么影响,但是我们可以在D:\MA TLAB7\toolbox\exlink文件夹下,用记

事本打开info.xml,在里面找到 \name>改为<\name> 这个时候不出其他问题的话就安装完成了. 呵呵简单吧!这是我自己安装以及帮同学安装出现的问题. 多次安装了matlab7后,不断的重复着那几个错误。我也不断地重复着修改,也是时候该总结一下了。 1. 首先,matlab安装需要一个注册码,这个网上到处都是,我也就不在追述了,随便搜一个就是。下面有几个,应该都可以,大家不妨试一下。 Matlab 7 注册码3: 14-44889-04614-04275-46147-23559-43066-41714-23083-65272-04997-17469-27919-17226-59 862-27901-53983-56217-20094-53460-62647-58166-24499-35558-19511-44882-53016-25658-6 1109-03776-34505-00776-15813-07183 Matlab 7 注册码4: 14-02863-32167-49274-14620-55383-23033-26960-31585-34411-64505-59377-01535-25859-02 729-42340-44002-31180-19826-51572-37426-25833-53451-02530-20898-18863-41455-29228-1 3667-31335-59199-04825-64974-59539 Matlab 7 注册码5: 14-31062-57999-64507-28421-43456-35967-55178-20933-12777-34026-44684-07146-17266-64 175-62985-50264-38373-35045-48372-03550-51628-06609-24618-64094-55458-49747-04848-2 4494-63995-46820-01807-20764-37086

相关文档
最新文档