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