文档库 最新最全的文档下载
当前位置:文档库 › MATLAB基础知识考试复习总结

MATLAB基础知识考试复习总结

MATLAB基础知识考试复习总结
MATLAB基础知识考试复习总结

第一章MATLAB基础

1系统仿真是根据被研究的真实系统的数学模型研究系统性能的一门学科,现在尤指利用计算机去研究数学模型行为的方法,即数值仿真。

2MATLAB集计算,可视化及编程于一身。其主要产品模块构成:(1)MATLAB(2)MATLABtoolbox(3)MATLAB Compiler(4)simulink(5)stateflow(6)Real-Time Workshop。

3MATLAB语言被称为第四代计算机语言。有以下几个主要特点:编程效率高;使用方便;高效方便的科学计算;先进的可视化工具;开放性、可扩展性强;运行时动态连接外部C或FORTRAN应用函数;在独立C或FORTRAN程序中调用MATLAB 函数;输入输出各种MATLAB及其他标准格式的数据文件;创建图文并茂的技术文档;特殊应用工具箱;高效仿真工具Smulink。

4变量命名规则:变量名、函数名对字母大小写敏感;变量名第一个字母必须是英文字母(只能是英文、数字和下连线)。

5 real(z)求复数Z实部 imag(Z)求复数Z虚部

abs(z) 求复数Z的模angle(Z)求复数Z的相角(单位是弧度)

callback回校函数mdata=csvread(‘engdata.txt’)

clc清除指令窗 clf清除图形窗

cd设置当前工作目录clear清除工作空间保存的变量

edit打开M文件编辑器exit、quit关闭、退出MATLAB

6 c=3+5i c=3+5*i (a=3;b=5;c=a+b*i)

1.3e-4

2.78e23 A.’转置S.*B S./B B.\S A.^n

7Command History(历史指令)窗记录着用户在命令指令窗中所输入过的所有指令行,且所有这些被记录的指令行都能被复制,并送到指令窗中再运行。

8Workspace Browser(工作空间浏览器)也叫内存浏览器,他保存了指令窗所使用过的全部变量(除非有意删除),可通过该浏览器对内存变量进行操作。

10点击MATLAB桌面工具条上的?图标,或选择下拉菜单项【Help】,都能提供帮助;MATLAB还提供现场帮助,用鼠标点亮指令并点击右键,在弹出的菜单中选择【Help On Selection】。

第二章数据及其运算

1简单数组生成方法:逐个元素输入法;冒号生成法[x=a:intc:b]; [x=linspace(a,b,n)]=[a:(b-a)/(n-1):b];logspace(w1,w2,n)

2>> diag([3,3,3])产生对角形数组

ans =3 0 0

0 3 0

0 0 3

>> eye(3) 产生单位数组

ans =1 0 0

0 1 0

0 0 1

>> magic(3) 产生魔方数组

a ns =8 1 6

3 5 7

4 9 2

>> ones(3) 产生全1数组

ans =1 1 1

1 1 1

1 1 1

>> rand(3) 产生0、1间随机数组

ans =0.8147 0.9134 0.2785

0.9058 0.6324 0.5469

0.1270 0.0975 0.9575

>> zeros(3) 产生全0数组

ans =0 0 0

0 0 0

0 0 0

>> zeros(3,2)

ans =0 0

0 0

0 0

3一位数组寻访

>> x=[2.0000 1.0472 1.7321 3.0000+5.0000i];

>> x1=x(3)

x1 =1.7321

>> x2=x([1 2 4])

x2 =2.0000 1.0472 3.0000 + 5.0000i

>> x3=x(2:end)

x3 =1.0472 1.7321 3.0000 + 5.0000i

>> x4=x(4:-1:1)

x4 =3.0000 + 5.0000i 1.7321 1.0472 2.0000

4二维数组寻访:A(:,j)表示A矩阵的第j列全部元素;A(i,:)表示A矩阵第i行全部元素;A(1:3,2:4)表示对A矩阵取第1~3行,第2~4列中所有元素。

例:>> A=rand(3,5)

A =0.1190 0.3404 0.7513 0.6991 0.5472

0.4984 0.5853 0.2551 0.8909 0.1386

0.9597 0.2238 0.5060 0.9593 0.1493

>> A1=A(1,:)

A1 =0.1190 0.3404 0.7513 0.6991 0.5472

>> A2=A(1:2,2:5)

A2 =0.3404 0.7513 0.6991 0.5472

0.5853 0.2551 0.8909 0.1386

>> A3=A([1,3],[2,5])

A3 =0.3404 0.5472

0.2238 0.1493

5非数(Not a Number)指的是0/0、∞/∞、0x∞之类的运算,用NaN或nan表

示。非数参与运算所得结果也是非数,具有传递性;非数没有大小,不能比较两个非数的大小。

6在MATLAB中,‘‘空’’数组除了用[ ]表示外,某维或若干维长度均为0的数组都是‘‘空’’数组。

7逻辑运算符: &与|或 ~非

第三章数据和数组的可视化

1例t=(0:pi/50:2*pi)'; %生成(101x1)的时间采样列向量

k=0.4:0.1:1; %生成(1x7)的行向量

X=cos(t)*k; %生成(101x7)的矩阵

plot(X); %绘制曲线,横坐标为每列元素对应的下标

box on使坐标封闭box off使坐标开启

title(s)书写图名text(x,y,s) 在(x,y)处写字符注释

xlable(s) 横坐标轴名ylable(s)纵坐标轴名

hold on,hold off多层叠绘axis([0,1,-1,17])坐标范围

alpha(0)完全透明,alpha(0.5)半透明,alpha(1)完全不透明

plotyy(X1,Y1,X2,Y2) 双纵坐标shading[flat,interp,faceted]

3 view([az,el])通过方位角、俯视角设置视点,例view([-82,58])

View([vx,xy,xz])通过直角坐标设置视点

3 M文件包括M脚本文件和M函数文件;M脚本文件的执行过程与在指令窗中直接输入指令的效果一样,但效率更高;M函数文件与脚本文件类似之处在于他们都是一个扩展名为“.m”的文件;M函数文件通常由以下几个部分组成:函数定义行、H1行、函数帮助文本、函数体、注释。

legend(s1,s2,…)在图的右上角建立图例

3例:t=(0:0.02:2)*pi;

x=sin(t);y=cos(t);z=cos(2*t);

plot3(x,y,z,'b-',x,y,z,'bd')

box on

legend('链','宝石')

4 >>x=-4:4;y=x;

[X,Y]=meshgrid(x,y);

Z=X.^2+Y.^2;

subplot(1,3,1),surf(X,Y,Z) %曲面图

subplot(1,3,2),mesh(X,Y,Z) %网线图

subplot(1,3,3),plot3(x,y,x.^2+y.^2);box on %曲线图

5>> [x,y]=meshgrid(-3:0.1:3,-2:0.1:2);

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

subplot(1,2,1),mesh(x,y,z)

axis([-3,3,-2,2,-0.5,1.0])

title('toushi')

hidden off %透视被叠压图形

subplot(1,2,2),mesh(x,y,z)

>> title('xiaoyin')

hidden on %消隐被叠压图形

>> axis([-3,3,-2,2,-0.5,1.0])

第四章 MATLAB编程

1for x=array 说明:循环体执行的次数由数组array的列数决定(commands)例:for x=0.2:0.2:0.8

end b=sqrt([1-x^2]);

end

2while expression说明:当expression为真时,执行循环体直commands 到为假

end

3if expression if expression

commands commands

end else

end

4 ezplot(f)其中f=f(x,y)为用符号函数表示的隐函数

例:ezplot(’x^2+x*y+y^2-10’)

5[x,y]=ginput(n)该指令用鼠标从图形上获取n个点的坐标(x,y)6例:用冒泡法对数组A=[1 6 8 9 3 5 6]进行升序排序

解:>> r=length(A);

for i=1:r-1

for j=i+1:r

if A(i)>A(j) %A(i)

temp=A(i);

A(i)=A(j);

A(j)=temp;

end

end

end

y=A

第五章系统模型

1计算机仿真过程:建模;模型实现;仿真分析。

2 num=[5,3];

den=[1,6,11,6]; %sys=tf(num,den)

sys=tf(num,den)

Transfer function:

5 s + 3

----------------------

s^3 + 6 s^2 + 11 s + 6

sys=tf([5 3],[1 6 11 6])

Transfer function:

5 s + 3

----------------------

s^3 + 6 s^2 + 11 s + 6

z=-0.6;

p=[-3 -2 -1]; sys=zpk(Z,P,K)

k=5;

sys=zpk(z,p,k)

Zero/pole/gain:

5 (s+0.6)

-----------------

(s+3) (s+2) (s+1)

>> sys=zpk(-0.6,[-3 -2 -1],5)

Zero/pole/gain:

5 (s+0.6)

-----------------

(s+3) (s+2) (s+1)

>> [z,p,k]=zpkdata(sys,'v')

z =-0.6000

p = -3

-2

-1

k =5

>> [num,den]=tfdata(sys,'v')

num =0 0 5 3

den =1 6 11 6

3 pzmap(sys)注:该指令将在S平面上用符号“O”表示零点,符号“X”表示极点。

4例:延时模型。G(s)=e^-0.5t(5s+3/s^3+6s^2+11s+6)

num=[5 3 ]; sys=tf(num,den,'inputdelay',tao)

den=[1 6 11 6]; sys=zpk(z,p,k,'inputdelay',tao)

sys=tf(num,den,'inputdelay',0.5)

Transfer function:

5 s + 3

exp(-0.5*s) * ----------------------

s^3 + 6 s^2 + 11 s + 6

5串联模型:sys=series(sys1,sys2)=sys1*sys2

并联模型:sys=parallel(sys1,sys2)=sys1+sys2

反馈连接:sys=feedback(sys1,sys2,sign)

第六章系统时间响应及其仿真

1对连续时间系统进行数字动态仿真,主要有两种方法:基于数值积分的仿真方法;基于离散相似法的仿真方法。

2数值积分方法所得到的离散数值解只是精确解的近似,其误差来自于两个方面,即舍入误差和局部截断误差。舍入误差与计算步长h成反比,局部截断误差

与h成正比,显然选择一个合适的积分步长可使总误差达到最小。

3数值积分常用方法:欧拉法、梯度法、龙格-库塔法、Gear法

4 step(sys) step(sys,Tfinal) step(sys,T) 阶跃响应仿真

说明:sys是系统模型;Tfinal为仿真时间,若省略则由系统默认;T为仿真时间向量,T=[T0:dt:Tfinal],dt为连续系统离散化的采样周期,T0为仿真开始时间。

5 impulse(sys) 脉冲响应仿真

6[U,T]=gensig(Type,Tau)信号发生器[u,t]=gensig(‘square’,5,10)说明:Type为信号类型:‘sin’、‘square’、‘pulse’;Tau为信号周期;U为信号值向量;T为与U对应的时间向量。

7 lsim(sys,U,T) 任意输入相应函数

8 initial(sys,x0)用于计算零输入状态下,由初始状态x0所引起的响应,只能用于状态空间模型。

9[T,y]=ode45(‘f’,tspan,yo,options)为一种单步显式,变步长RK-45算法,用于求解非刚性微分方程;ode23也一样;ode113属于多步法,求解非刚性。10例:已知某系统运动方程及初始条件为:

y1'=y2y3; y2'=-y1y3; y3'=-2y1y2

y1(0)=0; y2(0)=0.5; y3(0)=-0.5

求时间区间t=[0,20]微分方程的解。

解:(1)建立描述系统微分方程的m-函数文件rigit.m

function dy=rigit(t,y)

dy=zeros(3,1);

dy(1)=y(2)*y(3);

dy(2)=-y(1)*y(3);

dy(3)=-2*y(1)*y(2);

(2)编写调用函数rigit()的M文件,并执行

[T,y]=ode45('rigit',[0,20],[0,0.5.-0.5]);

Plot(T,y(:,1),'r',T,y(:,2),'b*',T,y(:3),'k-.');

legend('y1','y2','y3')

11已知二阶微分方程 y"-(1-y^2)y'+y=0

y(0)=0,y'(0)=1

求时间区间t=[0,20]微分方程的解。

解:(1)将微分方程表示成一阶微分方程组:

y1=y; y1'=y2; y2'=(1-y1^2)y2-y1

(2)建立描述系统微分方程的m-函数文件vdp.m

function dy=vdp(t,y)

dy=zeros(2,1);

dy(1)=y(2);

dy(2)=(1-y(1)^2)*y(2)-y(1)

(3)编写MATLAB主程序,并执行

[T,y]=ode45('vdp',[0,20],[0,1]);

Plot(T,y(:,1),'r-',T,y(:,2),'b:');

legend('y1','y2')

第七章系统频率响应及其仿真

1频率响应是指系统对谐波输入的稳态响应;

频率特性是指系统在正弦信号作用下,稳态输出与输入之比对频率的关系特性。G(jw)=Xo(jw)/Xi(jw)=A(jw)e^jφ(w)

2绘制G (s)=11(s+1)/s(s^2+15s+4)的幅频特性曲线和相频特性曲线

解:num=[11,11];den=[1 15 4 0];

w=0.05:0.01:0.5*pi;

Gw=polyval(num,j*w)./polyval(den,j*w);

mag=abs(Gw); %(p=0) wc

theta=angle(Gw); wc>wg 不稳定

subplot(2,1,1),plot(w,mag);

grid on;title('幅频特性’)

ylable('|G|'

subplot(2,1,2),plot(w,theta);

grid on;title('相频特性’)

Xlable('\omega(rad/s)'),ylable('deg')

3多项式函数Y=polyval(P,X) P:系数向量 X:自变量

4系统频率响应函数freqs(b,a,w) b、a为传递函数分子分母系数向量

h=freqs(b,a,w0指定正实角频率,返回响应值;

[h,w]=freqs(b,a)自动确定200个频率点,返回响应值和对应角频率

freqs(b,a,w)绘制对指定正实角频率向量的幅值和相频特性曲线。

5nyquist(sys) 绘制nyquist图

nyquist(sys,w) 指定频率范围w,绘制nyquist图

nyquist(sys1,sys2,…,sysn,w)在同一坐标系绘制多个nyquist [Re,Im,w]=nyquist(sys)返回频率响应的实部和虚部及对应w,不绘图 6 bode(sys) 绘制bode图

bodemag(sys)仅绘制幅频bode图

7 margin(sys)绘制Bode图,标出幅值与相位裕度。

[kg,y,wg,Wc]=margin(sys)返回幅值裕度kg,相位裕度y,相位穿越频率Wc 和幅值穿越频率Wg,不绘制Bod e图。

第八章控制系统的综合校正

1控制系统的性能指标大体上可分为两类,即频域指标和时域指标。

2已知系统传递函数为G(s)=5(s+1)/(s^3+4s^2+6s+5),求最大超调量Mp,调整时间ts和峰值时间tp.

解: >> num=[5 5];den=[1 4 6 5];sys=tf(num,den);

finalvalue=polyval(num,0)/polyval(den,0);

[y,t]=step(sys); %y(∞)=lim sY(s)=limG(s)

[yp,k]=max(y);tp=t(k); G(s)=Y(s)/(1/s)=sY(s)

Mp=100*(yp-finalvalue)/finalvalue;

len=length(t);

while(y(len)>0.98*finalvalue)&(y(len)<1.02*finalvalue)

len=len-1;end;

ts=t(len);step(sys)

3已知单位负反馈系统的开环传递函数为Gk=10/s(s+1)(s+5),求其单位斜坡输入时,系统稳态误差。

解:G k=zpk([],[0 -1 -5],10);

Xi=zpk([],[0 0],1);

sys=1/(1+Gk);

Es=sys*Xi; %dcgain(sys)=lim sys(s)

ess=dcgain(tf([1 0],[1])*Es); %计算稳态偏差εss=lim sE(s)

t=[0:0.05:10];xi=t; E(s)=Xi(s)/(1+G(s)H(s))

y=lsim(sys*Gk,xi,t); E(s)=H(s)E1(s)

plot(t,xi,'r-.',t,y,t,xi-y','k:)

legend('shuru','shuchu',wucha',0);

xlable('t(s)'),ylable('fuzhi、wucha')

4频域指标包含:(1)开环频域指标:主要指幅值穿越频率Wc,幅值裕度频率Kg,相位裕度γ等:(2)闭环频域指标:谐振峰值Mr,谐振频率Wr,闭环频宽Wcc 等。

5 PID校正例:设校正前开环传递函数为G(s)=4/(2s+1)(0.5s+1)(0.05s+1),设计滞后控制器使系统相位裕度为60度,开环增益为49。

解:(1)计算改变增益前后,系统开环对数频率特性

Gp=tf(1,[2,1])*tf(1,[0.5,1])*tf(1,[0.05,1])*4;

Gp1=Gp*49/4:

figure(1),margain(Gp)

figure(2),margain(Gp1)

(2)计算改变增益后,具有希望相位裕度的系统开环对数幅频穿越频率Wc

W=logspace(-1,2,100); 稳态误差:ess=lim e(t)=lim sE1(s)

[mag,ph]=bode(Gp1,W); 稳态偏差:εss=lim ε(t)=lim sE(s)

mag=reshape(mag,100,1);GB(s)=XO(s)/XI(s)=G(s)/(1±G(s)H(s))

ph=reshape(ph,100,1);

wc=interp1(ph,W,-110)

(3)确定校正环节

mag110=interp1(ph,mag,-110);

Beta=mag110

T1=6/Wc;BT1=Beta*T1;

Gc=tf([T1,1],[BT1,1])

(4)系统校核sys=Gc*Gp1

figure(3),margin(sys)

(5)时间响应比较figure(4)

subplot(2,1,1),step(feedback(Gp1,1,-1))

subplot(2,1,2),step(feedback(sys,1,-1),’r’)

学习Matlab 心得体会

Matlab 心得体会 本学期通过对MATLAB的系统环境,数据的各种运算,矩阵的分析和处理,程序设计,绘图,数值计算及符号运算的学习,初步掌握了MATLAB的实用方法。通过理论课的讲解与实验课的操作,使我在短时间内学会使用MATLAB,同时,通过上机实验,对理论知识的复习巩固实践,可以自己根据例题编写设计简单的程序来实现不同的功能,绘制出比较满意的二维三维图形,在实践中找到乐趣。 MATLAB是一个实用性很强,操作相对容易,比较完善的工具软件,使用起来比较方便,通过操作可以很快看到结果,能够清晰的感觉到成功与失败,虽然课程中也会出现一些小问题,但是很喜欢这门课程。在为学习这门课前就听说了他的强大,因为现在的很多模型都是需要这些分析软件的。曾经旁听过学校数学建模的课程,当时老师用的是lingo。对那个只需要U盘携带就可以安装的小东西记忆深刻。等到学习matlab时觉得这才是真正的王道啊。 它不仅有强大的运算功能,还有强大的绘图功能,虽然学习了有一个学习,但是我对他的了解额仅仅是一点点,或许连入门都谈不上。因为我学习时了解到一个现实。就是matlab 的学习依赖有比较好的数学功底,其中我看最经常运用到的就是矩阵。我从网上了解到matlab是一门高等数学和计算机技术结合的东西,学习它必须具有相应的数学和计算机知识。然而很可惜,我的书写不是很好。每次讲到这个部分的时候就觉得听说理解无能了。特别是我今年还是大三。虽然这学期的学习的时间短暂,就算时间足够,老师也不能把所有的都讲解给我们,因为一个软件的功能需要我们自己不断的去摸索,老师也不可能知道所有。老师只是个指路人,最终的学习还是要靠自己。而且在摸索的过程中,我们能够发现和体会学习的快乐。痛并快乐着是种常态了吧。 自我感觉学习matlab与其说是学习一门软件,更不如说是学习一门语言。用一种数理的语言描述现象,揭示表象下的规律。此外,我认为matlab中的作图功能很强大,不仅简单的函数现象可以明确画出,而且一些点状物,甚至立体图也可以画出。大一上微积分的时候,老师曾经多次在课件中加入用matlab画出的图来。不论是一维二维三维等等,都能很好的画出来。只要能编写出函数式,在短短的几秒之内,他就会呈现在你眼前。另外就是图形的直观性,这是由阴影的制作的。而且可以根据需要,坐标图上加标题,坐标轴标记,文本注释级栅格等,也可以指定图线形式,比如是虚线。颜色也可以自己来定。可以在同一张图上画,也可以单个显示。 在学习的过程中,因为以前学过access中的select语言,觉得就编写这方面是有共性的,但是matlab的编程语言似乎更多更复杂一点,这是由于涉及的数学模型,数学公式更多的原因。可是今年的这门课真的是让我感到没学到什么,估计也是因为我抱着看一看的随意态度来的吧,也没有那种遇到不懂的就一定要弄懂它的决心和毅力。说什么都是借口了,无法掩饰我没有学好它的事实。事实上,我觉得今年这门课的重点并不是让我们掌握这种软件的具体用法,而是主要向我们展示如何用它去解决一些金融问题,数学问题。这点让我很郁闷,因为我不懂得原理,听起来这门课倍感吃力啊。可是嘛,年轻没有什么不可以,又有谁可以断言我接下来的生活中不能好好学习这个东西为自己的工作,学习,生活,研究兴趣带来方便呢。 从大学开学的见闻到现在学习MATLAB,感觉这是一个很好的软件,语言简便,实用性强。作为一个做新手,想要学习好这门语言,可以说还是比较难的。在我接触这门语言的这些天,除了会画几个简单的图形,其他的还是有待提高。从另一个方面也对我们大学生提出了两个要求——充实的课外基础和良好的英语基础。在现代,几乎所有好的软件都是来自国外,假如不会外语,想学好是非常难的。

第一章 基本MATLAB基本命令

MATLAB学习指南 第1章.基本MATLAB指令 1.1.基本数量运算 首先,我们来谈一谈怎样向程序中添加注释(例如此行)。注释就是我们向程序中添加的文字,用来解释我们在做什么。所以,如果我们或其他人以后读到此代码,就能很容易地理解代码在执行什么指令。在一个MATLAB文件中,如果百分号%出现在一行文字中,百分号后面的所有文字都是注释,而不是MATLAB想要进行解释的指令。首先,我们向屏幕输入信息,告诉计算机我们开始运行1.1节。 指令disp('字符串')在屏幕上展示了文本字符串。 接下来,我们令一个变量等于1。 如果x没有被声明,这一指令先为变量x在内存中分配一个空间,然后又将x的值1存储在所分配的空间中。同时,这一指令会将"x = 1"显示在屏幕上。通常,我们不希望像这样的输出结果把屏幕弄得杂乱,所以我们在指令的最后加上一个分号就可以使指令变得“不可见”。例如,我们使用下列指令把x的值“不可见地”变为2,然后将结果显示在屏幕上。x=2;x的值发生了改变,但是却没有显示在屏幕上 disp('我们已经改变了x的值'); 然后,通过输入“x”,不带分号,我们显示x的值。 现在,我们来看如何声明其它变量。 y=2*x; 对y的值进行初始化,使其等于x的值的2倍。 x=x+1;使x的值增加1。 z=2*x; 声明了另一变量z。 因为在声明变量z时x的值已经发生了变化,所以z不等于y。 接下来,我们想看存储在内存中的变量的列表。我们使用指令“who”来实现。 通过使用“whos”我们能得到更多的信息 我们也可使用这些指令来得到有关仅有的某些变量的信息。

我们想要去掉变量“差”。 使用指令“clear”来实现。 接下来,我们想要去掉变量x和y。 我们再次使用指令“clear”。 一般来说,好的程序设计模式都要求每行只编写一个指令;但是,MATLAB却允许将多个指令放在一行。 更普遍的情况是,由于语句结构的长度使得我们希望一个指令能够分成多行。这可通过使用3个点来实现。 最后,当使用指令“clear all”时,我们可一次去掉所有变量。 1.2.基本向量运算 声明一个变量最简单的,但不值得推荐的方法就是逐一输入其分量。 x显示x的值 一般来说,最好一下子声明一个变量,因为这样的话MATLAB从一开始就知道它需要分配多少内存。对于大型向量,这会更加有效。 y=[1 4 6] 与上述代码作用相同。 注意到这次声明了一个行向量。为得到一个列向量,我们或者使用转置(复合x的伴随矩阵)算符xT=x’;把实行向量x进行转置,或从一开始就将其变成列向量。 为了看到行向量和列向量在大小上的不同,使用指令“size”便可返回向量或矩阵的大小。

matlab基础知识

第2章基础知识 本章着重介绍MATLAB的一些基础知识,包括数据类型、基本矩阵操作、运算符和字符串处理函数。本章是MATLAB编程的基础。 2.1 数据类型 MATLAB中定义了很多种数据类型,包括字符、数值、单元、结构、java类、函数句柄等类型,用户还可以自己定义数据类型。 在MATLAB中有15种基本数据类型,每种基本数据类型均以数组/矩阵的形式出现,该矩阵可以是最小的0*0矩阵到任意大小的n维矩阵。 1.数值类型 数值类型包含整数、浮点数和复数3种类型。另外MATLAB还定义了Inf和NaN两个特殊数值。 (1)整数类型 MATLAB支持1、2、4和8字节的有符号整数和无符号整数。这8种数据类型的名称、表示范围、转换函数如表2-1所示,其中转换函数可以把其它数据类型的数值强制转换为对应的整数类型。尽可能使用字节少的数据类型,这样可以节约存储空间和提高运算速度。 表2-1 整数类型 名称范围转换函数名称范围转换函数 有符号1字节整数int8() 无符号1字节整数uint8() 有符号2字节整数int16() 无符号2字节整数uint16() 有符号4字节整数int32() 无符号4字节整数uint32() 有符号8字节整数int64() 无符号8字节整数uint64() (2)浮点数类型 MATLAB有单精度和双精度两种浮点数,其中双精度浮点数为MATLAB默认的数据类型。这2种数据类型的名称、存储空间、表示范围和转换函数如表2-2所示。

表2-2 浮点数类型 名称存储空间表示范围转换函数 单精度浮点数4字节single() 双精度浮点数8字节double() (3)复数类型 复数包含实部和虚部。在MATLAB中可以用i或j来表示虚部。 例如:在命令窗口中用赋值语句产生复数5+10i,代码如下: A=5+10i 例如:在命令窗口用函数complex()产生复数5+10i,具体代码如下: X=5; Y=10; z=complex(x,y) (4)Inf和NaN 在MATLAB中用Inf和-Inf分别表示正无穷大和负无穷大。除法运算中除数为0或者运算结果溢出都会导致inf或-inf的运行结果。 在MATLAB中用NaN(not a number)来表示一个既不是实数也不是复数的数值。类似0/0、inf/inf等运算产生的结果均为NaN。 2.逻辑类型 在MATLAB中逻辑类型包括true和false,分别由1和0表示。在MATLAB中用函数logical()将任何非零的数值转换为true(即1),将数值0转换为false(即0)。 3.字符和字符串类型 在MATLAB中,数据类型(char)表示一个字符。一个char类型的1*n数组称为字符串string。用单引号对表示字符串。 例如:str=‘I am a great person’

(完整版)matlab课程学习总结

目录 VC++ & Matlab 混合编程的快速实现 (2) 摘要 (2) 关键词 (2) 简介: (2) 实例分析 (3) 1、编写Matlab函数 (3) 2、Matlab6.5编译器设置 (3) 3、建立C++控制台工程 (5) 4、启用Matlab Add-in 工具条 (6) 5、VC++6.0环境及工程设置 (7) 6、Matlab到C++的代码转换 (10) 7、C++函数的使用 (11) 特别说明一: (12) 特别说明二: (13) 8、程序的发布 (13) 总结 (13)

VC++ & Matlab 混合编程的快速实现摘要: 许多工程软件需要用到复杂的数学算法。VC++能够形成各种用户界面,并可以直接与系统及底层硬件交换数据。因此研究VC++和Matlab的混合编程具有很大的实际意义。 该文讨论了如何使用Matlab 的Complier 将*.m函数编译为动态链接库DLL,提供VC++ 调用的方法,提供了一种VC++与Matlab 混合编程的快速实现。 关键词:Matlab VC++ MCC Complier 动态链接库DLL 简介: Matlab 作为当今世界上应用最为广泛的数学软件,具有非常强大的数值计算、数据分析处理、系统分析、图形显示甚至符号运算的功能。已经在如生物工程,图像处理,语音处理,雷达探空,声纳探水,地震探地,以及控制论,系统论等各个领域得到广泛的应用。它是一个完整的数学平台,在这个平台上,用户只需寥寥数语就可以完成十分复杂的功能,大大提高了工程分析计算、图像处理的效率。但是Matlab 强大的功能只能在它所提供的平台上才能使用,即用户必须在安装Matlab 系统的机器上才能执行*.m文件。这样当用户需要将在Matlab下已开发完毕的复杂算法应用到高级语言开发环境下时就带了问题,是将现成的东西集成高级语言开发的程序中呢?还是用高级语

MATLAB与数值分析课程总结

MATLAB与数值分析课程总结 姓名:董建伟 学号:2015020904027 一:MATLAB部分 1.处理矩阵-容易 矩阵的创建 (1)直接创建注意 a中括号里可以用空格或者逗号将矩阵元素分开 b矩阵元素可以是任何MATLAB表达式,如实数复数等 c可以调用赋值过的任何变量,变量名不要重复,否则会被覆盖 (2)用MATLAB函数创建矩阵如:a空阵[] b rand/randn——随机矩阵 c eye——单位矩阵 d zeros ——0矩阵 e ones——1矩阵 f magic——产生n阶幻方矩阵等 向量的生成 (1)用冒号生成向量 (2)使用linspace和logspace分别生成线性等分向量和对 数等分向量 矩阵的标识和引用 (1)向量标识 (2)“0 1”逻辑向量或矩阵标识 (3)全下标,单下标,逻辑矩阵方式引用 字符串数组 (1)字符串按行向量进行储存 (2)所有字符串用单引号括起来 (3)直接进行创建 矩阵运算 (1)注意与数组点乘,除与直接乘除的区别,数组为乘方对应元素的幂

(2)左右除时斜杠底部靠近谁谁是分母 (3)其他运算如,inv矩阵求逆,det行列式的值, eig特征值,diag 对角矩阵 2.绘图-轻松 plot-绘制二维曲线 (1)plot(x)绘制以x为纵坐标的二维曲线 plot(x,y) 绘制以x为横坐标,y为纵坐标的二维曲线 x,y为向量或矩阵 (2)plot(x1,y1,x2,y2,。。。。。。)绘制多条曲线,不同字母代替不同颜色:b蓝色,y黄色,r红色,g绿色 (3)hold on后面的pl ot图像叠加在一起 hold off解除hold on命令,plot将先冲去窗口已有图形(4)在hold后面加上figure,可以绘制多幅图形 (5)subplot在同一窗口画多个子图 三维图形的绘制 (1)plot3(x,y,z,’s’) s是指定线型,色彩,数据点形的字 符串 (2)[X,Y]=meshgrid(x,y)生成平面网格点 (3)mesh(x,y,z,c)生成三维网格点,c为颜色矩阵 (4)三维表面处理mesh命令对网格着色,surf对网格片着色 (5)contour绘制二维等高线 (6)axis([x1,xu,y1,yu])定义x,y的显示范围 3.编程-简洁 (1)变量命名时可以由字母,数字,下划线,但是不得包含空格和标点 (2)最常用的数据类型只有双精度型和字符型,其他数据类型只在特殊条件下使用 (3)为得到高效代码,尽量提高代码的向量化程度,避免使用循环结构

MATLAB实训小结

实训小结 为期一周的MATLAB实训在学习与忙碌中度过了,时间虽短,但我们却真真切切的学到了知识,在现实工作中可以运用的知识。 在第一节课,我们便了解到MATLAB是世界上最流行的、应用最广泛的工程计算和仿真软件,它将计算、可视化和编程等功能同时集于一个易于开发的环境。MATLAB主要应用于数学计算、系统建模与仿真、数学分析与可视化、科学与工程绘图和用户界面设计等。对MATLAB的系统结构和特点等,老师也向我们做出了大致的讲解,同时,我们知道了MATLAB程序的一些最基本的应用和运算,并能够进行一些简单的编程。就这样,实训的第一天大家都在期待和兴奋中度过。 接下来的时间,主要是以大家自学和练习为主,老师进行辅导和考察。在学习过程中,不懂的可以相互之间小声的讨论,也可向老师请教,但必须确保自己真正学到了知识,认真的看书并进行编程练习。一天的学习接近尾声时,就是老师考察大家一天的收获的时候了,老师总会出一些小题目让大家编出它的程序,虽然有的题目对我们来说还是有些难度的,但是在老师的指点下我们还是编出程序的,当我们看到自己编的程序运行正确时,总是会万分的兴奋,充满成就感。 就这样,仅仅一个星期的实训就结束了,虽然不能十分熟悉和运用MATLAB的所有程序,但是我们却打下了一定的基础,

在以后,当我们真正开始深入学习这门学问时,我们对它将不会再那么陌生,学起来也将轻松许多。这次实训为我们提供了一个很好的学习机会,唯一不足的就是时间有点短,我们不能在这段时间里学到更多的知识,因此,在这一周打下的基础上,我们需要用自己的努力去自学,以获取更多的知识。 知识是无穷无尽的,知识的获取需要一颗上进的心,老师将我们领进了门,下面的路就应该我们自己去走,即是充满荆棘,也要努力奋斗往前冲。

MATLAB学习报告

MATLAB学习报告 在上大学之前,计算机在我的印象和生活中都是一种用于娱乐的机器, 玩游戏、上网、看电影、听音乐和偶尔搜索资料。来到大学以后,我对计算机 的用途有了新的认识。大一的一年里我们接触了很多不同类型的软件有作图的,有做视频的等等。我们还学习了c语言,虽然只是学习的一些皮毛,但是我觉 得这一点皮毛足以改变我对计算机的使用和看法了。 首先我们来介绍一下MATLAB,全称是MATrix LABoratory,即矩阵实验室,是Math work公司推出的一套高效率的数值计算和可视化软件。它是当今 科学界最具影响力、也是最具活力的软件,它起源于矩阵运算,并高速发展成 计算机语言。它的优点是强大的科学运算、灵活的程序设计流程、高质量的图 形可视化与界面、便捷的与其他程序和语言接口。Matlab软件的功能。它提供 了强大的科学运算、灵活的程序设计流程、高质量的图形可视化与界面设计、 便捷的与其他程序和语言接口的功能。在国际学术界,Matlab已经被确认为准确、可靠的科学计算标准软件。在国际一流的学术刊物上,尤其是信息科学刊 物上,都可以看到Matlab的应用。 一种语言之所以能如此迅速地普及,显示出如此旺盛的生命力,是由于 它有着不同于其他语言的特点。正如同FORTRAN和C等高级语言使人们摆脱了 需要直接对计算机硬件资源进行操作一样,被称作为第四代计算机语言的MATLAB,利用其丰富的函数资源,使编程人员从繁琐的程序代码中解放出来。MATLAB的最突出的特点就是简洁。MATLAB用更直观的、符合人们思维习惯的代码,代替了C和FORTRAN语言的冗长代码。MATLAB给用户带来的是最直观、最 简洁的程序开发环境。以下简单介绍一下MATLAB的主要特点: 1、Matlab一个高级的距阵/阵列语言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。用户可以在命令窗口中将输入语句与执 行命令同步,也可以先编写好一个较大的复杂的应用程序(M文件)后再一起运行。新版本的MATLAB语言是基于最为流行的C++语言基础上的,因此语法特 征与C++语言极为相似,而且更加简单,更加符合科技人员对数学表达式的 书写格式。使之更利于非计算机专业的科技人员使用。而且这种语言可移植性好、可拓展性极强,这也是MATLAB能够深入到科学研究及工程计算各个领域的重要原因。 2、Matlab的数据库的可覆盖性,可调用性。我记得C语言中,假如你得 调用一个数值,必须是局部函数中赋值,否则就定义为全局变量。还有在C语 言中数据的变量储存是一个问题,自动的有auto,静态变量有static和register。我们有时候很难记忆,所以数据储存容易出现问题。而Matlab软件的数据是由于MATLAB 语言库函数与用户文件的形式相同所以用户文件可以像 数据库函数一样随意调用。所以用户可根据自己的需要任意扩充函数库。 3、Matlab软件编程的简便性,清晰性。用Matlab软件设计程序,它更 加方便快捷。MATLAB 的基本数据单元是既不需要指定维数、也不需要说明数据类型的矩阵,而且数学表达式和运算规则与通常的习惯相同。因此,在MATLAB 环境下,数组的操作与数的操作一样简单。对比C语言,Matlab确实简单不少。我们在编写程序时简便了许多。例如,求1 1 2 3 5 8 13?这个算法。C语言得用许多的语句去循环算这个算法。而Matlab软件可以首先数据初始化,然后用while去循环,做出循环体,就可以你要多少数据,它会给你多少数据。还有

最新MATLAB应用基础第一章matlab基础

M A T L A B应用基础第一章m a t l a b基础

MATLAB应用 赵国瑞 天津大学电子信息工程学院计算机基础教学部 2000.3 制作

概述 MATLAB是世界流行的优秀科技应用软件之一。具有功能强大(数值计算、符号计算、图形生成、文本处理及多种专业工具箱)、界面友好,可二次开发等特点。 自1984年由美国MathWorks公司推向市场以来,先后发布了多个版本,1993年发布4.0版,1996年发布5.0版,1999年发布5.3版。目前发布的为6.5版。 MATLAB有专业和学生版之分。二者功能相同,但计算规模和计算难度有差别。 在国内外,已有许多高等院校把MATLAB列为本科生、研究生必须掌握的基本技能。我校自1999年列为研究生选修课程。而且有很多教师、研究生把它作为进行科研的重要工具。 国内关于MATLAB的书籍很多,如: 《精通MATLAB 5.3》张志涌等编著北京航空航天大学出版社,2000.8

《科学计算语言MATLAB简明教程》杜藏等编著南开大学出版社,1999.6 《精通MATLAB 5》张宜华编写清华大学出版社,1999.6 《精通MATLAB--综合辅导与指南》 Duane Hanselman、Bruce Littlefield编著李人厚等译较西安交通大学出版社,1998.1 等等 本课程主要介绍MATLAB 5.3的基本功能和基础知识。至于其包含的多种工具箱,如仿真工具箱、解非线性方程(组)工具箱、优化工具箱等,应通过本学习后,结合各专业自己进一步学习和使用。 第1章MATLAB基础 1.1 源文件(M-文件) 分为两类:函数文件和非函数文件。 都用扩展名.M 1.1.1函数文件

Matlab基础知识点汇总

MATLAB讲义 第一章 MATLAB系统概述 1.1 MATLAB系统概述 MATLAB(MATrix LABoratory)矩阵实验室的缩写,全部用C语言编写。 特点: (1)以复数矩阵作为基本编程单元,矩阵运算如同其它高级语言中的语言变量操作一样方便,而且矩阵无需定义即可采用。 (2)语句书写简单。 (3)语句功能强大。 (4)有丰富的图形功能。如plot,plot3语句等。 (5)提供了许多面向应用问题求解的工具箱函数。目前,有20多个工具箱函数,如信号处理、图像处理、控制系统、系统识别、最优化、神经网络的模糊系统等。 (6)易扩充。 1.2 MATLAB系统组成 (1)MATLAB语言 MATLAB语言是高级的矩阵、矢量语言,具有控制流向语句、函数、数据结构、输入输出等功能。同时MATLAB又具有面向对象编程特色。MATLAB语言包括运算符和特殊字符、编程语言结构、字符串、文件输入/输出、时间和日期、数据类型和结构等部分。 (2)开发环境 MATLAB开发环境有一系列的工具和功能体,其部分具有图形用户界面,包括MATLAB桌面、命令窗口、命令历史窗口、帮助游览器、工作空间、文件和搜索路径等。 (3)图形处理 图形处理包括二维、三维数据可视化,图像处理、模拟、图形表示等图形命令。还包括低级的图形命令,供用户自由制作、控制图形特性之用。 (4)数学函数库 有求和、正弦、余弦等基本函数到矩阵求逆、求矩阵特征值和特征矢量等。 MATLAB数学函数库可分为基本矩阵和操作、基本数学函数、特殊化数学函数、线性矩阵函数、数学分析和付里叶变换、多项式和二重函数等。 (5)MATLAB应用程序接口(API) MATLAB程序可以和C/C++语言及FORTRAN程序结合起来,可将以前编写的C/C++、FORTRAN语言程序移植到MATLAB中。 1.3 MATLAB的应用围包括: MATLAB的典型应用包括: ●数学计算 ●算法开发 ●建模、仿真和演算 ●数据分析和可视化 ●科学与工程绘图 ●应用开发(包括建立图形用户界面) 以矩阵为基本对象 第二章 Matlab基础

MATLAB心得体会

M A T L A B心得体会 标准化文件发布号:(9312-EUATWW-MWUB-WUNN-INNUL-DQQTY-

MATLAB心得体会 这学期开了MATLAB这门课程,这里面有太多的学问。只要书里面有最基本的语法和命令,对于一个有编程基础的人,MATLAB可以在一个下午的时间内学会。当然,仅仅是学会。如果想要对MATLAB比较得心应手,那么最好的办法就是练习。练习的素材很多,比如对于学经济学的,可以做一些simulation之类的,也可以试着把计量或者宏观教材里面的一些算法写写出来。一开始可能很慢,但是当你完成了一个比较大的project的时候,你的MATLAB的功力将会有巨大的提升。 用MATLAB的无非是做数值计算或者最优化,这也是MATLAB的强项,MATLAB有足够多的工具解决这些问题。但是在使用这些工具箱之前,应该首先了解一些数值计算以及最优化的理论。这一点在程序碰到问题或者计算结果不理想的时候尤为重要。很多时候结果不理想并不是自己的理论出了问题,而是盲目或者错误使用MATLAB的工具箱而导致的。比如我曾经做过一个单纯形法的优化程序,但是结果总是不理想,这个时候就要返回到单纯形法具体是一种什么样的来考虑这个问题,最后发现是由于目标的某一部分十分平缓导致的。 当然更重要的是如果你不理解理论,很多问题根本不知道如何处理。有个学化学同学就曾问我一个程序怎么写,说MATLAB肯定可以完成的。了解清楚之后才明白原来他想做的就是一个受限最小二乘。但是他不懂得什么是最小二乘,当然面对这个问题无从下手。 这个问题没有人强调,但我觉着蛮重要。这里的关键点其实很简单,就是尽量减少重复计算,哪怕是多项式复杂度以内的计算。重复计算的内容应该适时保存到内存中,以后直接调用。一个程序可能会重复运行几千次几万次,一点点的浪费时间都可能被放大很多。空间(内存)我们是可以扩充的,但是时间不是,所以绝大多数时候我们需要放弃空间,获得时间上的迅捷。 这里有个故事,曾经在某技术论坛上看到的,说腾讯公司早期做的QQ实在太过垃圾,他们追踪过QQ的行为,发现在几分钟时间里重复调用了某同一注册表项几百次。显然注册表的内容所占内存是有限的,甚至是可以忽略的,但是每次读注册表项可能都要读硬盘,这里的时间花费是很大的,为什么不把这项内容直接存储在内存里呢?

Matlab入门基础知识整理

MATLAB基础知识 MATLAB的主要功能 1.数值计算和符号计算功能 例如,求解线性方程组 在MATLAB命令窗口输入命令: a=[2,3,-1;3,-5,3;6,3,-8]; b=[7;8;9]; x=inv(a)*b 也可以通过符号计算来解此方程 syms x1 x2 x3 [x1,x2,x3]=solve(2*x1+3*x2-x3-7,3*x1-5*x2+3*x3-8,6*x1+3*x2-8*x3-9) 2.绘图功能 例如,分别绘制函数y=300sinx/x和y=x2的曲线 x=-20:0.1:20; plot(x,300*sin(x)./x,':',x,x.^2); 3.程序设计语言功能 MATLAB是解释性语言,程序执行速度较慢,而且不能脱离MATLAB环境而独立运行。MathWorks公司提供了将MATLAB源程序编译为独立于MATLAB集成环境运行的EXE文件以及将MATLAB程序转化为C语言程序的编译器。4.扩展功能 MATLAB包含两部分内容:基本部分和各种可选的工具箱。 基本部分构成了MATLAB的核心内容,也是使用和构造工具箱的基础。 工具箱扩展了MATLAB的功能。 功能性工具箱 学科性工具箱 MATLAB的集成开发环境 命令窗口(Command Window)用于输入命令并显示除图形以外的所有执行结果。一般来说,一个命令行输入一条命令,命令行以回车或分号结束 但一个命令行也可以输入若干条命令,各命令之间以逗号或分号隔开 如果一个命令行很长,一个物理行之内写不下,可以在第1个物理行之后加上3个小黑点并按下回车键,然后接着下一个物理行继续写命令的其他部分。3个小黑点称为续行符,即把下面的物理行看作该行的逻辑继续。例如: z=1+1/(1*2)+1/(1*2*3)+1/(1*2*3*4)+ … 1/(1*2*3*4*5) 工作空间(Workspace)是MATLAB用于存储各种变量的内存空间。 当前目录(Current Directory)是指MATLAB运行时的工作目录,只有在当前目录下的文件、函数才可以被运行或调用。 如果没有特殊指明,数据文件也将存放在当前目录下。 命令历史窗口 自动保留自安装起所有用过的命令的历史记录,并且还标明了使用时间,从而方便用户查询。而且,通过双击命令可进行历史命令的再运行。 MATLAB的帮助功能 进入MATLAB帮助界面可以通过以下方法。 ●单击MATLAB主窗口工具栏中的Help按钮。

matlab课程总结

Matlab 课程总结 学习matlab已经有一年多的时间了,matlab跟其他语言不一样(我用的编程语言,除了matlab就应该是c或c++了,VB也接触过),如果你抱着“把其他语言的思想运用在matlab里面的想法”的话,那么我想,即使程序运行不出错,也很难把握matlab的精髓,也就很难发挥matlab的作用了。 Matlab是一个基于矩阵运算的软件,这恐怕是众所周知的事情了,但是,真正在运用的时候(就是在编程的时候),许多人(特别是初学者)往往没有注

意到这个问题,因此,for循环(包括while循环)满天飞…………..这不仅没有发挥matlab所长,还浪费宝贵时间。我们往往在初始化矩阵的时候注意到这个问题,懂得了使用矩阵而不是循环来赋值,但是,在其他环节上,就很容易疏忽,或者说,仍然没有摆脱C++的思想。因此,以先用循环(基于C++的思想)来编写代码,然后看看能否用matlab的语言(基于矩阵的思想)来改进。当然,这样做的前提是你对matlab提供的一些函数比较熟悉才行,这些函数在matlab的“帮助”那里搜索“FunctionsUsedinVector izing”就可以找到一些。 对MATLAB的认识和了解 语言简洁紧凑,使用方便灵活,库函数极其丰富。与之前学过的C语言相比较。它的语言简练明了,有时候只要一个字符就能表示出整句语句,不用一步步去读。这种语言简单而实用。每个函数建立一个同名的M文件,如上述函数的文件名为fun.m。这种文件简单、短小、高效,并且便于调试。比如说,函数的赋值。在C语言中,它需要一个个去赋值,x=?;y=?;当变量很多的时候,我们不能一次性的去赋值。并且我们需要注意赋值的类型。而在Matlab软件中,我们只需要知道它的初值,自变量的数值,以及它的范围,就可以用矩阵把整个函数赋值。这减去了我们的工作复杂性,也降低了我们时间花费。 运算符丰富,用Matlab软件设计程序,它更加方便快捷。MATLAB 的基本数据单元是既不需要指定维数、也不需要说明数据类型的矩阵,而且数学表达式和运算规则与通常的习惯相同。因此,在MATLAB环境下,数组的操作与数的操作一样简单。对比C语言,Matlab确实简单不少。我们在编写程序时简便了许多。例如,求1 1 2 3 5 8 13…这个算法。C语言得用许多的语句去循环算这个算法。而Matlab软件可以首先数据初始化,然后用while去循环,做出循环体,就可以你要多少数据,它会给你多少数据。还有在Matlab软件设计程序时,少了很多的定义,减少了复杂度,节省了计算机的暂时内存使用率。就和C语言一样,在语句结束时用“{ }”,Matlab 软件中一句话结束时,也需要用end。MATLAB既具有结构化的控制语句(如for循环、while循环),又有面向对象编程的特性。 语法限制不严格,程序设计自由度大。程序的可移植性很好,基本上不做修改就可以在各种型号的计算机和操作系统上运行。Matlab具有一个强大的工具箱,里面的东西,只要你想要的,你可以毫不犹豫的提取出来,不用想C语言编程中,你要的东西你得用函数调用的形式去借用。这些工具箱提供了用户在特别应用领域所需的许多函数,这使得用户不必花大量的时间编写程序就可以直接调用这些函数,达到事半功倍的效果。

matlab学习心得体会(精选3篇)

matlab学习心得体会(精选3篇) matlab学习心得体会一:matlab学习心得matlab中有丰富的图形处理能力,提供了绘制各种图形、图像数据的函数。他提供了一组绘制二维和三维曲线的函数,他们还可以对图形进行旋转、缩放等操作。matlab内部还包含丰富的数学函数和数据类型,使用方便且功能非常强大。 本学期通过对matlab的系统环境,数据的各种运算,矩阵的分析和处理,程序设计,绘图,数值计算及符号运算的学习,初步掌握了matlab的实用方法。通过理论课的讲解与实验课的操作,使我在短时间内学会使用matlab,同时,通过上机实验,对理论知识的复习巩固实践,可以自己根据例题编写设计简单的程序来实现不同的功能,绘制出比较满意的二维三维图形,在实践中找到乐趣。 matlab是一个实用性很强,操作相对容易,比较完善的工具软件,使用起来比较方便,通过操作可以很快看到结果,能够清晰的感觉到成功与失败,虽然课程中也会出现一些小问题,但是很喜欢这门课程。 matlab学习心得体会二:matlab学习心得(463字) 学习matlab是听说它是一个功能强大的数学软件,但是正被微积分的计算缠身,听说有一个高级的计算器当然高兴,以后可以偷懒了,当然现在不能偷懒。听说关于自动化的计算特别复杂,如果有一种软件能帮忙解题,那是一种极大的解脱,有益于缩短研究时间。目前我只知道有三种数学软件,都是国外的,没有国内的,差距挺大的。matlab学起来挺顺手的,比c语言简单。但是深入学习的时候却困难重重,因为很多知识都没有学习,就算知道那些函数,也没有什么用处。老师布置的作业难度大,写一篇实验,大一什么都不会,写一篇这种论文谈何容易。最多也就会一些数值计算、符号计算、简单绘图,根本不会什么实验。 学习matlab体会最多的是这个软件的功能强大,好多数学题都被轻易的解出。但是有一点遗憾,不知是我不会用,还是它没个功能,已知空间的电荷分布,求空间的电场分布。其中电场分布是无法用函数表达式表示。我知道计算机肯定可以实现,但是这个软件能不能实现就不知道了,我看过许多资料,但是在这方面没有提到相关信息。 总之,这个软件功能强大,不知什么时候国内才有类似的软件。 matlab学习心得体会三:学习matlab的心得(817字) 这是我在学习的过程中的一些技巧,或许对你有帮助,可能字数不你能满足你的要求,但是绝对是精华。

MATLAB基础知识考试复习总结

第一章MATLAB基础 1系统仿真是根据被研究的真实系统的数学模型研究系统性能的一门学科,现在尤指利用计算机去研究数学模型行为的方法,即数值仿真。 2MATLAB集计算,可视化及编程于一身。其主要产品模块构成:(1)MATLAB(2)MATLABtoolbox(3)MATLAB Compiler(4)simulink(5)stateflow(6)Real-Time Workshop。 3MATLAB语言被称为第四代计算机语言。有以下几个主要特点:编程效率高;使用方便;高效方便的科学计算;先进的可视化工具;开放性、可扩展性强;运行时动态连接外部C或FORTRAN应用函数;在独立C或FORTRAN程序中调用MATLAB 函数;输入输出各种MATLAB及其他标准格式的数据文件;创建图文并茂的技术文档;特殊应用工具箱;高效仿真工具Smulink。 4变量命名规则:变量名、函数名对字母大小写敏感;变量名第一个字母必须是英文字母(只能是英文、数字和下连线)。 5 real(z)求复数Z实部 imag(Z)求复数Z虚部 abs(z) 求复数Z的模angle(Z)求复数Z的相角(单位是弧度) callback回校函数mdata=csvread(‘engdata.txt’) clc清除指令窗 clf清除图形窗 cd设置当前工作目录clear清除工作空间保存的变量 edit打开M文件编辑器exit、quit关闭、退出MATLAB 6 c=3+5i c=3+5*i (a=3;b=5;c=a+b*i) 1.3e-4 2.78e23 A.’转置S.*B S./B B.\S A.^n 7Command History(历史指令)窗记录着用户在命令指令窗中所输入过的所有指令行,且所有这些被记录的指令行都能被复制,并送到指令窗中再运行。 8Workspace Browser(工作空间浏览器)也叫内存浏览器,他保存了指令窗所使用过的全部变量(除非有意删除),可通过该浏览器对内存变量进行操作。 10点击MATLAB桌面工具条上的?图标,或选择下拉菜单项【Help】,都能提供帮助;MATLAB还提供现场帮助,用鼠标点亮指令并点击右键,在弹出的菜单中选择【Help On Selection】。 第二章数据及其运算 1简单数组生成方法:逐个元素输入法;冒号生成法[x=a:intc:b]; [x=linspace(a,b,n)]=[a:(b-a)/(n-1):b];logspace(w1,w2,n) 2>> diag([3,3,3])产生对角形数组 ans =3 0 0 0 3 0 0 0 3 >> eye(3) 产生单位数组 ans =1 0 0 0 1 0 0 0 1 >> magic(3) 产生魔方数组 a ns =8 1 6

matlab实习总结

MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连 matlab开发工作界面 接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用 Matlab是一个强大的数学工具,它的应用广泛,涉及到各个领域.它使用起来十分方便,不用麻烦去定义变量.它的绘图能力很强,甚至可以模拟出三维视图.矩阵是它应用的核心,许多工程繁琐的运算都需要靠矩阵来化简,这正是它的生命力所在.但是,他的函数很多,开始学时记的比较痛苦,我已经深深感觉到了.不过看多了也就熟了,感觉和学五笔差不多.它的语法简单,像我学过C语言的学起来还是蛮容易的.它的数组定义十分符合自然,是从1开始的,数组元素的调用也很

接近数学的表达.此外,函数的名字也很符合英文规则,反正我用得很开心就是了. 通过学习matlab,我又一次锻炼了自己的思维.它学起来得心应手也让我明白了学习一门语言(c语言)对学习其他语言的帮助指导作用.同时,它也加强了我理论联系实际的能力.这是一个专业课的基础工具,学好它是必要的. 在第一章中,讲的是一些matlab的入门技术,除了一些基本操作与介绍之外,还初步认识了简单指令的编制,认识了一些matlab 的特殊符号,例如运算用到的加减乘除。(+—*/)对我来说还是比较容易上手的。 但在第二章开始,开始有点难度了,在第二章我接触到两种数据类型,一个是double,还有就是char,另外还介绍了赋值语句,数学计算,常用函数,输入输出语句和数据文件。其中让我最容易混淆的就是运算的优先等级,当所需要运算的公式较长时,常常因没有弄好运算优先级而把程序编错,这一章也接触了更多的特殊符号,在多次看书之后,还是顺利把老师所布置的作业完成了。 在第三章中,我接触到基本的matlab选择结构,还有控制这个结构的关系运算符和逻辑运算符。也就是if结构。这个结构对运算起到很大作用,跟elseif配合使用的话,就可以将很图方法。还有,我们学习如何控制画图的附加功能,例如线的宽度和符号的颜色。这些属性可由指定的“propertyname”和值Value决定,“propertyname”和值Value将出现在plot命令的数据后。

MATLAB的常用应用总结

§7 MATLAB的应用 7.1 MATLAB在数值分析中的应用 插值与拟合是来源于实际、又广泛应用于实际的两种重要方法。随着计算机的不断发展 及计算水平的不断提高,它们已在国民生产和科学研究等方面扮演着越来越重要的角色。下面对插值中分段线性插值、拟合中的最为重要的最小二乘法拟合加以介绍。 7.1.1分段线性插值 所谓分段线性插值就是通过插值点用折线段连接起来逼近原曲线,这也是计算机绘制图形的基本原理。实现分段线性插值不需编制函数程序,MATLAB自身提供了内部函数in terpl 其主要用法如下: in terp1(x,y,xi) —维插值 ?yi=i nterp1(x,y,xi) 对一组点(x,y)进行插值,计算插值点xi的函数值。x为节点向量值,y为对应的节点函 数值。如果y为矩阵,则插值对y的每一列进行,若y的维数超出x或xi的维数,则返回NaN。 ?yi=i nterp1(y,xi) 此格式默认x=1:n , n为向量y的元素个数值,或等于矩阵y的size(y,1)。 ?yi=interp1(x,y,xi, ' method') method用来指定插值的算法。默认为线性算法。其值常用的可以是如下的字符串。 ?n earest线性最近项插值。 ?lin ear线性插值。 ?spli ne三次样条插值。 ?cubic三次插值。 所有的插值方法要求x是单调的。x也可能并非连续等距的。 正弦曲线的插值示例: >> x=0 :0.1:10; >> y=si n( x); >> xi=0 :0.25:10; >> yi=i nterp1(x,y,xi); >> plot(x,y, ' 0' ,xi,yi) 则可以得到相应的插值曲线(读者可自己上机实验) 。 Matlab也能够完成二维插值的运算,相应的函数为in terp2,使用方法与in terpl基本相同,只是输入和输出的参数为矩阵,对应于二维平面上的数据点,详细的用法见Matlab联机帮助。 7.1.2最小二乘法拟合 在科学实验的统计方法研究中,往往要从一组实验数据(X j, y i)中寻找出自变量x和因 变量y之间的函数关系y=f(x)。由于观测数据往往不够准确,因此并不要求y=f(x)经过所有的点(X i,yj,而只要求在给定点人上误差「二f(xj-y i按照某种标准达到最小,通常 采用欧氏范数|卜2作为误差量度的标准。这就是所谓的最小二乘法。在MATLAB中实现最

Matlab-学习心得及总结

Matlab 解方程基本思想 1、调用command window界面→在File→Script→编写方程→run 2、Solve(’eq1-数值’,’x’)注意:英文冒号;log=ln;log3x=lllx lll3; 3、方程组:[x,y]=solve(’eq1’,’eq2’)[‘2*x+3*y=4’,’4*x+5*y=6’] 4、[x, fval(近似零解)]=fzero(’eq1-数值’,初值) 5、Clear 清除变量;clc清屏 6、int()函数实现不定积分功能,例如:syms x; int(sin(-x))=-cos(x) 7、通过syms 函数定义 a b c……来解决含字母变量的矩阵运算 8、伴随矩阵A*=det(A)*inv(A),即可求解 9、syms x a;int(3*a*x+a,x)其中确定x为积分变量 10、syms x a b;int(1,x,a,b)=b-a,其中x表示积分变量,a为下限,b为上限 11、求偏微分:syms x y;z=sym('x^2+y^2');diff(z,'x',2)=2;其中2为二次偏微分 12、求导数:syms x ;z=sym('x^3');diff(z,'x',2)=6*x;其中2表示二次求导 13、求单变量最小化: syms x;y=@(x) sin(x);[x,fval]=fminbnd(y,0,2*pi);x=1.5*pi;fval=-1;求解在区间[0,2*pi]上最小值fval输出最小值,x对应的极值点 14、一元函数定区间求最值并画出图像: f=2*exp(-x)*sin(x) 在区间[0,8]中的最小值与最大值 syms x; f=@(x)2*exp(-x)*sin(-x); fplot(f,[0,8]); [xmin,fmin]=fminbnd(f,0,8);(最小值) f1=@(x)-2*exp(-x)*sin(-x); [xmax,fmax]=fminbnd(f1,0,8);(最大值) 15、绘制多元函数的图像: x=-1:0.1:1; y=-1:0.1:1; [X,Y]=meshgrid(x,y); ; Z=exp(X)*(4*X.^2+2*Y.^2+4*X.Y+2*Y+1) mesh/surf (X,Y,Z); xlabel('X-axis'),ylabel('Y-axis'),zlabel('Z-axis') ;(注意矩阵中的'.') 16、多项式拟合 x=[];y=[];a=polyfit(x,y,n);式中n为拟合多项式的指数,y=a(1)x^n+a(2)x^(n-1)+……,拟合出来的数据依次为:a(1) ,a(2),…… xi=linspace (0,16,160); yi=polyval(a,xi);plot(x,y,'o',xi,yi) (比较拟合的曲线与原始输入数据点之间的关系) 17、运用inline定义函数,例如:f(x,y)=sin(x*y),f=inline('sin(x*y','x','y'));z=f(pi/180,30)=0.5 18、BP神经网络代码: P=[];%输入矢量 t=[];%目标输出矢量 [pn,minp,maxp,tn,mint,maxt]=premnmnx(p,t);%原始数据归一化 net=newff(minmax(p),[20,9,1],{'tansig','tansig','purelin'},'trainlm');%定义BP网络训练参数

相关文档