文档库 最新最全的文档下载
当前位置:文档库 › matlab学习笔记

matlab学习笔记

matlab学习笔记
matlab学习笔记

第0章Matlab界面

Expl-1:

Help命令----查找命令

输入方法:在命令窗口输入help lookfor

也可以输入lookfor lookfor

Eg-2

连续符(一行输不完时)用三个点将整个表达式分几部分键入

Eg-3

工作空间是用于存储各种变量和结果的内存空间。

有关变量管理的常用命令如下:

Who 列出当前工作空间中的所有变量

Whos 列出变量的大小等信息

Clear 清楚工作空间所有的变量

Size。Length 获取变量的大小

Eg-4

编辑器主要分为内存数据编辑器和程序编辑器。

内存数据编辑器是指工作空间浏览器直接修改和删除变量;程序编辑器是指在file菜单下打开或创建的新的m文件后,在m文件窗口中进行的程序编辑。

其中%是加注解

一、matlab数值计算

1、常用数值类型

常用数值类型:

数值型、字符串型、符号型。

字符串又称标识符:由英文字母、阿拉伯数字、下划线组成,且第一个符号必须为英文字母,字母分大小写,不等价。

表示方法:字符串用‘’包住

赋值方法:

变量名=数值或已赋值的变量

常用的特殊变量名:

Pi 圆周率

Inf或INF 无穷大

Nan 代表不定值

Eps 浮点数的相对误差

I,j 虚数单位

Ans 临时变量名

2、矩阵和数组

矩阵的创建方法:

用中括号包住,每一行数字用空格或逗号分开,每一列用分号分开访问矩阵内元素方法:

c=[1 2 3;3 5 6;6 7 8]

>> c=[1 2 3;3 5 6;6 7 8]

c =

1 2 3

3 5 6

6 7 8

>> c(2,3) %%访问单个元素

ans =

6

>> c(:,3) %访问某一列

ans =

3

6

8

>> c(1:2,2:3) %访问矩阵的一部分元素

ans =

2 3

5 6

注意:矩阵里面元素的标点符号要在英文输入法条件下的半角下输入Eg-2

3、特殊矩阵

>> i=2;j=3;

>> zeros(i,j)

ans =

0 0 0

0 0 0

>> ones(2,2)

ans =

1 1

1 1

> rand(3) %生成随机元素矩阵

ans =

0.8913 0.0185 0.6154

0.7621 0.8214 0.7919

0.4565 0.4447 0.9218

>> magic(3) %生成魔方矩阵(行列和值相等的矩阵)ans =

8 1 6

3 5 7

4 9 2

Company()生成伴随矩阵

Diag()生成对角阵

Trid()生成上三角阵

Tril()生成下三角阵

4、矩阵的四则运算

+ - * / (右除) \(左除)

规则:

1,矩阵相加,行列的各元素对应相加

2,矩阵和常数运算时,将常数转换成常数乘以ones同型矩阵

3,矩阵相乘是,左边矩阵列和右边矩阵行相等

4,方阵的n次幂,n>0时,直接相乘,n<0时,结果为n个方阵相乘后的逆

5,AX=B,采用左乘X=A\B, XA=B, X=B/A

5、矩阵函数运算

只要在命令窗口中输入help matfun 或直接输入help +函数命令

>> help matfun

Matrix functions - numerical linear algebra.

Matrix analysis.

norm - Matrix or vector norm.

normest - Estimate the matrix 2-norm.

rank - Matrix rank.

det - Determinant.

trace - Sum of diagonal elements.

null - Null space.

orth - Orthogonalization.

rref - Reduced row echelon form.

subspace - Angle between two subspaces.

Linear equations.

\ and / - Linear equation solution; use "help slash".

linsolve - Linear equation solution with extra control.

inv - Matrix inverse.

rcond - LAPACK reciprocal condition estimator

cond - Condition number with respect to inversion.

condest - 1-norm condition number estimate.

normest1 - 1-norm estimate.

chol - Cholesky factorization.

cholinc - Incomplete Cholesky factorization.

lu - LU factorization.

luinc - Incomplete LU factorization.

qr - Orthogonal-triangular decomposition.

lsqnonneg - Linear least squares with nonnegativity constraints.

pinv - Pseudoinverse.

lscov - Least squares with known covariance.

Eigenvalues and singular values.

eig - Eigenvalues and eigenvectors.

svd - Singular value decomposition.

gsvd - Generalized singular value decomposition.

eigs - A few eigenvalues.

svds - A few singular values.

poly - Characteristic polynomial.

polyeig - Polynomial eigenvalue problem.

condeig - Condition number with respect to eigenvalues.

hess - Hessenberg form.

qz - QZ factorization for generalized eigenvalues.

ordqz - Reordering of eigenvalues in QZ factorization.

schur - Schur decomposition.

ordschur - Reordering of eigenvalues in Schur decomposition.

Matrix functions.

expm - Matrix exponential.

logm - Matrix logarithm.

sqrtm - Matrix square root.

funm - Evaluate general matrix function.

Factorization utilities

qrdelete - Delete a column or row from QR factorization.

qrinsert - Insert a column or row into QR factorization.

rsf2csf - Real block diagonal form to complex diagonal form.

cdf2rdf - Complex diagonal form to real block diagonal form.

balance - Diagonal scaling to improve eigenvalue accuracy.

planerot - Givens plane rotation.

cholupdate - rank 1 update to Cholesky factorization.

qrupdate - rank 1 update to QR factorization.

函数命令有:

Chol cholesky 分解函数

Cond 矩阵的条件数函数

Det 矩阵的行列式值函数

Eig 矩阵的特征值、特征向量函数

Expm 矩阵的指数函数

Funm 一般矩阵函数

Inv 矩阵的逆函数

Logm 矩阵的对数函数

Lu 分解函数

Norm 矩阵的范数函数

Null 矩阵的零空间函数

Pinv 矩阵的违逆函数

Poly 矩阵的特征多项式函数

Rank 矩阵的秩函数

Sqrtm 矩阵的开方根函数

Svd 矩阵的奇异值分解函数

Trace 矩阵的迹函数

6、数组运算

所谓数组就是把每个矩阵看做由独立元素组成的数据。可以认为是分块矩阵。运算均为。* 点乘。/ 点右除。\ 点左除

注意:可直接给数组内的某个元素赋值,改变其值。

常用运算函数

Cumsum 列阵累积和

Det 方阵行列式

Diag 生成对角阵

Dot 向量的数量积(点积)

Cross 向量的向量积(差积

Eig 矩阵的特征值和特征向量

End 矩阵的最后项的指针

Eye 生成单位阵

Flipud

从低到顶交换阵列元素 Inv 求方阵的逆 Length 向量的长度

Linspace 创建向量的等分元素 Magic 生成魔方矩阵 Max 矩阵中最大值 Min 矩阵中最小值 Mesh 生成线框几何面

Meshgrid 将不同的两个向量转成具有相同长度的矩阵 Ones 单位为1的矩阵 Zeros 单位为0的矩阵 Rank 求矩阵的秩 Size 确定阵列的长度 Repmat 复制阵列

Sort 按升序排列矩阵元素 Sum 计算矩阵函数的和

7、常数数值方法举例

线性代数方程组的求解

步骤:

AX=0 其中,A 为m*n 阶矩阵,X 为n 维列向量,求解分两种条件下 1,矩阵秩=n 时 2,不为n 时(用到null 函数) 其方法如举例中 AX=B 类同

例1:??

?

??=-+=+-=++04024053x z y x z y x z y

说明:一下的方程类同,只写出矩阵形式了,另外,非其次的有增广矩阵 >> a=[1 3 5;4 -1 2;1 1 -4] a =

1 3 5 4 -1

2 1 1 -4 >> r=rank(a) r = 3

系数矩阵秩为3,只有零解。 例2:

>> a=[4 4 2 ;-3 12 3 ;8 -2 1 ;2 12 4] a =

4 4 2

-3 12 3

8 -2 1

2 12 4

>> r=rank(a)

r =

2

>> x1=null(sym(a))

x1 =

1

3/2

-5

于是【x,y,z】=k【x1】,即x=k, y=3/2*k, z=-5k,其中,k为任意常数。例3

>> a=[1 -2 6;3 8 1 ;18 -1 3]

a =

1 -

2 6

3 8 1

18 -1 3

>> c=[54;-6;70]

c =

54

-6

70

>> ra=rank(a) 系数矩阵的秩

ra = 3

>> rc=rank([a c])

rc = 3 增广矩阵的秩

>> det(a)

ans = -875 行列式不为0,可左乘

>> xx=a\c

xx = 方程的解

2.4571

-2.6354

7.7120

此例为系数矩阵的秩等于增广矩阵且等于列数,方程有唯一解。

例4

a =

1 2 3

4 5 6

7 8 9

>> b=[-1;-2;-3]

b =

-1

-2

-3

>> ra=rank(a)

ra = 2

>> rb=rank([a b])

rb = 2 系数矩阵和增广矩阵的秩相等但小于列数,有无穷解>> x1=null(sym(a)) 求其次的解

x1 =

1

-2

1

>> x2=a\b 非其次的特解---为小数形式

x2 =

0.3333

-0.6667

>> x3=sym(a)\sym(b) 非其次的特解---为分数形式

x3 =

1/3

-2/3

故方程的解为xx=k x1 +x3 k为任意常数

例5、用高斯迭代法---编程法

例6

>> a=[1 3 5;2 4 6;7 8 9]

a =

1 3 5

2 4 6

7 8 9

>> f1=poly(a)

f1 =

1.0000 -14.0000 -40.0000 0.0000

>> f2=poly2str(f1,'x')

f2 =

x^3 - 14 x^2 - 40 x + 3.4464e-014 % roots函数求特征多项式的根>> x1=roots(f1)

x1 =

16.4340

-2.4340

0.0000 % 用eig 函数求特征值和特征向量 >> [d,x3]=eig(a) d =

-0.3532 -0.5923 0.4082 -0.4521 -0.4433 -0.8165 -0.8191 0.6728 0.4082 x3 =

16.4340 0 0 0 -2.4340 0 0 0 0.0000

8、微分方程初值问题的求解

用符号法命令dsolve 求解微分方程 或用龙格库塔公式命令ode23/ode45求解。此外可设置程序求解。 1、dsolve 法

% 用 Dmy 表示函数的m 阶导数

% 小写字母t 是系统默认的自变量,可以缺省,例如22t 1y dt

y

d -=+可以表示为: D2y+y=1-t^2 下面给出上面的微分方程的求解过程:

>> y=dsolve('D2y+y=1-t^2') % 求解微分方程的通解 y = sin(t)*C2+cos(t)*C1+3-t^2

>> y=dsolve('D2y+y=1-t^2','y(0)=0.4','Dy(0)=0.7) '% 求解微分方程特解 y = 7/10*sin(t)-13/5*cos(t)+3-t^2 例2

>> [x,y,z]=dsolve('Dx=2*x-3*y+3*z','Dy=4*x-5*y+3*z','Dz=4*x-4*y+2*z','t'); >> x=simple(x) %将x 简化 y=simple(y) z=simple(z)

x = C1*exp(t)^2+C3/exp(t)

y = C1*exp(t)^2+C2/exp(t)^2+C3/exp(t) z =C1*exp(t)^2+C2/exp(t)^2 2、用龙格库塔方法

以上面的方程为例:

其m 文件函数为:function dy=ex1(t,y)

dy=zeros(2,1) dy(1)=dy(2)

dy(2)=-y(1)+1-t^2

在命令行输入:>> ode23(@ex1,[-10,10],[4,7]),grid

直接得结果,输入图形为:

例2

创建m文件函数为:function dy=ex2(t,y)

dy=zeros(3,1)

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

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

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

在其命令行输入:[t,y]=ode45('ex2',[0,20],[1,2,3]);

plot(t,y(:,1),'-',t,y(:,2),t,y(:,3),'+')

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

其输出函数图像为:

3、泰勒编程法(略)

第二章绘制图形1、二维图形设置

基本图形生成函数

Plot函数,格式为:plot(x1,y1,’s1’,x2,y2,’s2’,……)

其中xi ,yi ,表示对应生成图形的x轴和y轴上的坐标;‘si’开关量字符串,用来确定曲线的线型、坐标点型状、曲线色彩,单引号内部可以含有一种特性符号,也可以含3种特性符号。例如:‘y’,‘y:s’都合法。

如省略‘si’,则默认为线型为实线型,如为单条曲线,为蓝色;如为多条,按蓝、绿、红、青、深红、黄依次改变。

符号线型符号色彩

- 实线 b 蓝色

-- 虚线 c 青色

:点线g 绿色

-。点化线k 黑色

符号坐标点形状m 深红色

。点r 红色

O 圆y 黄色

* 星号w 白色

+ 加号

S 方块

d 菱形

p 五角星

h 六角形

线的生成:

>> x=1:10;

>> y=4*x+2;

>> plot(x,y,'r--o')

其图形为:

生成曲线

>> t=0:2*pi/150:2*pi;

>> y=sin(t);

>> plot(t,y,'m:')

其图形为:

多窗口曲线图:

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

figure(1); 表示绘制第一个图形

y1=sin(t);

plot(t,y1,'r:')

figure(2);

y2=cos(t);

plot(t,y2,'g-.')

绘图如下:

单窗口子图曲线图生成

>> t=linspace(0,4*pi,100); %其含义类似与t=0:4*pi:100,但表示在1~4*pi间插100个数据>> yi=sin(t); y2=cos(t);

>> y3=sin(t)./(cos(t)+eps); y4=cos(t)./(sin(t)+eps);

>> subplo t(2,2,1) %左上角放一个,即2x2的个数,其序号为1。

>> plot(t,yi)

>> subplot(2,2,2)

>> plot(t,,y2)

>> plot(t,y2)

>> subplot(2,2,3)

>> plot(t,y3)

>> subplot(2,2,4)

>> plot(t,y4) 其图形为:

15

2、基本图形的标识

其命令有: Title 标题 xlabel x 轴名称 ylabel y 轴名称

Text 通过程序在图形指定位置放置文本字符串 Gtext 单击鼠标指定放入文本字符串 Legend 在图形中添加注释 grid 网格线

Axis 坐标轴调整 hold 图形保持 Zoom

图形缩放

设置坐标名称和标题 并放置字符串

t=0:pi/50:2*pi; y1=sin(2*t); y2=cos(4*t);

plot(t,y1,'g-',t,y2,'r:')

xlabel('0 to 2\pi','fontsize',12) % 此处\pi 表示π ylabel('振幅','fontsize',12)

title('例--如图所示','fontsize',14)

text(pi/2,sin(2*pi/10),'y1\leftarrow','fontsize',12)

% text 中的前两个位所放文本的位置,\leftarrow 向左的箭头,fontsize 表示字体大小,为12号字,right 表示右对齐,若缺省,表示左对齐。

>> text(pi,cos(3*pi/10),'y2\rightarrow','fontsize',12)

>> gtext('单击鼠标','fontsize',12) 其图形为:

1

2

3

4

5

6

7

0 to 2π

振幅

例--如图所示

调整坐标比例和标定图例

x=linspace(0,4*pi,100); y1=sin(x); y2=cos(x); subplot(2,2,1) plot(x,y1,x,y2) axis off ; % 取消横纵轴 axis('square','equal'); % 设置横纵轴比例

AXIS SQUARE ; makes the current axis box square in size.

AXIS EQUAL : sets the aspect ratio so that equal tick mark

increments on the x-,y- and z-axis are equal in size. This makes SPHERE(25) look like a sphere, instead of an ellipsoid. legend ('y1','y2'); % 标定 y1和y2的图例 grid on ; %打开网格线 subplot(2,2,2) plot(x,y1,x,y2) axis off;

axis('xy','normal'); AXIS XY : puts MATLAB into its default "Cartesian" axes

mode. The coordinate system origin is at the lower left corner. The x axis is horizontal and is numbered from left to right. The y axis is vertical and is numbered from bottom to top.

AXIS NORMAL : restores the current axis box to full size

and removes any restrictions on the scaling of the units. This undoes the effects of AXIS SQUARE and AXIS EQUAL.

legend('y1','y2');

grid on;

subplot(2,2,3)

plot(x,y1,x,y2)

axis on;

axis('square','equal');

subplot(2,2,4)

plot(x,y1,x,y2)

axis on;

axis('xy','normal');

其图形为:

0510051015图形保持和图形缩放

t=linspace(0,2*pi,50);

y1=sin(2*t);

y2=cos(3*t);

plot(t,y1,'g:',t,y2,'b--')

text(pi/2,sin(2*pi/10),'y1\leftarrow','fontsize',12)

text(pi,cos(3*pi/10),'y2\rightarrow','fontsize',12)

>> hold on 图形保存

>> y3=sin(2*t).*cos(3*t);

>> plot(t,y3,'r-')

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

>> zoom on 图形缩放打开>> zoom off

其图形为:

特殊绘图形式

1、 绘制复数向量图

Plot (x ) x 为复数时,等价于plot(real(x),imag(x)), 其中real 为实部,imag 为虚部。 X 为实数时,等价于plot (x ,x

)。 2、 绘制对数坐标图

有单对数坐标函数和双对数坐标图为:

Semilogx (x ,y )或semilogy (x ,y )和loglog (x ,y ) 3、 绘制极坐标图 命令为:polar

例1绘制y=cos(x).*sin(x);的极坐标图 >> x=[0:0.02:2*pi]; >> y=cos(x).*sin(x); >> polar(x,y);

>> title('绘制极坐标') 其图形为:

90

270

180

0绘制极坐标

例2,求x^15+x^10+x^5+1=0的根。 x=[1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1]; y=roots(x); % 求解方程的根 r=abs(y); t=angle(y); polar(t,r,'bd');

title('方程根的分布图')

其图形为:

2700

方程根的分布图

其他特殊图形的绘制

函数命令功能

Area 填充区域图

Bar 绘制直方图Compass 绘制复数矢量图Comet 绘制彗星曲线图Feather 绘制羽毛图

Fill 填充颜色

Hist 绘制累积图Stairs 绘制阶梯图

Stem 绘制针状图

Pie 绘制饼图

Quiver 绘制向量场图Rose 绘制极坐标累计图

3、三维图形的绘制

一般三维图有:

One:三维曲线

命令为:plot3(x,y,z)

Plot3(x,y,z,’s’)

Plot3(x1,y1,z1,’s1’,x2,y2,z2,’s2’,……)

其中s为开关量,设定颜色、线型等,为默认值。例1 绘制螺旋线

>> t=0:pi/100:5*pi;

>> plot3(sin(3*t),cos(3*t),t)

>> grid

其图形为:

Two:三维网线

命令为:mesh(z)

Mesh(z,c)

Mesh(x,y,z)

Mesh(x,y,z,c)

x=[1 4 ;10 1; 10 3];

y=[4 10;10 1 ;6 1]

z=[7 1;1 2;9 3];

mesh(x,y,z)

grid on

box 添加三维箱体方框

colormap([0 0 1]) 设置网线颜色,【0 0 1】为蓝色

其图形为:

Three:三维曲面

有两种途径,一是,先获得三维网线,在填充指令;二是,用一下命令:surf(z)

Surf(z,c)

Surf(x,y,z)

Surf (x ,y ,z ,c )

其输入输出与mesh 相同。 Four :三维图形的装饰 颜色函数命令为

Colormap (RGB )

【0 0 0】=黑色, 【0 0 1】=蓝色, 【0 1 0】=绿色, 【1 0 0】=红色 【1 1 0】=黄色 【1 1 1】=白色 copper=铜色色图 pink=粉红色色图 Cool=冷色色图 hot=暖色色图 视觉角度函数调用: View (azi ,ele ) View (【x ,y ,z 】) 【azi ,ele 】=view

其中azi 和ele 分别为方向角度(观察点与坐标原点的连线和y 轴负半轴之间的夹角)和俯视角度(观察点和坐标原点的连线和x 轴正半轴之间的夹角),默认为azi=-37.5度,ele=30度。 例1

t=0:0.01:0.95; t1=0:0.01:0.95; t2=1:0.05:3; T=[t1,-t2+3];

[x,y,z]=cylinder(T,40); mesh(x,y,z);

subplot(221);mesh(x,y,z);view(0,0); subplot(222);mesh(x,y,z);view(20,20); subplot(223);mesh(x,y,z);view(40,40); subplot(224);mesh(x,y,z);view(80,80); 其图形为:

-2

-1

1

2

2

2

00.5

1

-2

-2

4、图形对象及其属性

图形对象

命令有:

函数名函数功能调用格式

Figure 创建图形窗口句柄变量=figure(属性名1,属性值1,……)Uicontrol 创建控制界面句柄变量= Uicontrol(属性名,属性值)

Uimenu 创建菜单界面句柄变量= Uimenu(属性名,属性值)Uicontextmenu 创建文本界面句柄变量= Uicontextmenu(属性名,属性值)Axes 创立坐标轴句柄变量= Axes(属性名,属性值)

Line 创立线对象句柄变量= Line(x,y,z,属性名,属性值)Surface 创立面对象句柄变量= Surface(属性名,属性值)

Text 创立文字对象句柄变量= Text(x,y,z,,’文字说明’,属性名,属性值)Patch 创立方块对象句柄变量= Patch(x,y,z,,’填充颜色’,属性名,属性值)对象属性

命令有:

调用set函数设置图形属性:set(句柄变量,属性名,属性值)

调用set函数获取图形属性:set(句柄变量,属性名)

第三章程序设计m文件

1、M函数:

M文本文件函数定义格式:

Function[输出变量]=函数名(输入变量)

程序语句

注释说明语句

调用格式:

输出变量=函数名(输入变量)

注意:

1、M函数名应该与M存储文件名相同;

2、M函数内可有多个函数时,函数第一个function为主函数,文件名以主函数名。

3、注释语句前要加%,每行都要。

4、除注释外,第一行必须是function开始;

5、程序语句包括调用函数、程序控制语句和赋值语句等;

6、M函数调用时,调用函数的输入输出变量可以与定义的函数的输入输出不同。

matlab信号与系统实验报告

实验一 基本信号的产生与运算 一、 实验目的 学习使用MATLAB 产生基本信号、绘制信号波形、实现信号的基本运算。 二、 实验原理 MATLAB 提供了许多函数用于产生常用的基本信号:如阶跃信号、脉冲信号、指数信号、正弦信号和周期方波等等。这些信号是信号处理的基础。 1、 利用MATLAB 产生下列连续信号并作图。 (1)51),1(2)(<<---=t t u t x (2)300),3 2sin()(3.0<<=-t t e t x t (3)1.01.0,3000cos 100cos )(<<-+=t t t t x (4)2000),8.0cos()1.0cos()(<<=t t t t x ππ 答:(1)、 >> t=-1:0.02:5; >> x=(t>1); >> plot(t,-2*x); >> axis([-1,5,-3,1]); >> title('杨婕婕 朱艺星'); >> xlabel('x(t)=-2u(t-1)'); (2)、 >> t=0:0.02:30; >> x=exp(-0.3*t).*sin(2/3*t); >> plot(t,x);

>> title('杨婕婕朱艺星'); >> xlabel('x(t)=exp(-0.3*t).*sin(2/3*t)'); 因为原函数在t=15后x(t)取值接近于零,所以将横坐标改成0到15,看得更清晰 axis([0,15,-0.2,0.6]); (3)>> t=-0.1:0.01:0.1;x=cos(100*t)+cos(3000*t);plot(t,x); >> title('杨婕婕朱艺星'); >>xlabel('x=cos(100*t)+cos(3000*t)'); 因为t的间隔取太大,以至于函数不够准确,缩小t的间隔: t=-0.1:0.002:0.2;x=cos(100*t)+cos(3000*t); plot(t,x);title('杨婕婕') >> t=-0.1:0.0001:0.1; x=cos(100*t)+cos(3000*t); >> plot(t,x);title('杨婕婕朱艺星'); >> xlabel('x=cos(100*t)+cos(3000*t)');

图论算法及其MATLAB程序代码

图论算法及其MATLAB 程序代码 求赋权图G =(V ,E ,F )中任意两点间的最短路的Warshall-Floyd 算法: 设A =(a ij )n ×n 为赋权图G =(V ,E ,F )的矩阵,当v i v j ∈E 时a ij =F (v i v j ),否则取a ii =0,a ij =+∞(i ≠j ),d ij 表示从v i 到v j 点的距离,r ij 表示从v i 到v j 点的最短路中一个点的编号. ①赋初值.对所有i ,j ,d ij =a ij ,r ij =j .k =1.转向② ②更新d ij ,r ij .对所有i ,j ,若d ik +d k j <d ij ,则令d ij =d ik +d k j ,r ij =k ,转向③. ③终止判断.若d ii <0,则存在一条含有顶点v i 的负回路,终止;或者k =n 终止;否则令k =k +1,转向②. 最短路线可由r ij 得到. 例1求图6-4中任意两点间的最短路. 解:用Warshall-Floyd 算法,MATLAB 程序代码如下: n=8;A=[0281Inf Inf Inf Inf 206Inf 1Inf Inf Inf 8607512Inf 1Inf 70Inf Inf 9Inf Inf 15Inf 03Inf 8 Inf Inf 1Inf 3046 Inf Inf 29Inf 403 Inf Inf Inf Inf 8630];%MATLAB 中,Inf 表示∞ D=A;%赋初值 for (i=1:n)for (j=1:n)R(i,j)=j;end ;end %赋路径初值 for (k=1:n)for (i=1:n)for (j=1:n)if (D(i,k)+D(k,j)

matlab常用对象操作

、常用对象操作:除了一般windows窗口的常用功能键外。 1、!dir 可以查看当前工作目录的文件。!dir& 可以在dos状态下查看。 2、who 可以查看当前工作空间变量名, whos 可以查看变量名细节。 3、功能键: 功能键快捷键说明 方向上键Ctrl+P 返回前一行输入 方向下键Ctrl+N 返回下一行输入 方向左键Ctrl+B 光标向后移一个字符 方向右键Ctrl+F 光标向前移一个字符 Ctrl+方向右键 Ctrl+R 光标向右移一个字符 Ctrl+方向左键 Ctrl+L 光标向左移一个字符 home Ctrl+A 光标移到行首 End Ctrl+E 光标移到行尾 Esc Ctrl+U 清除一行 Del Ctrl+D 清除光标所在的字符 Backspace Ctrl+H 删除光标前一个字符 Ctrl+K 删除到行尾 Ctrl+C 中断正在执行的命令 4、clc可以命令窗口显示的内容,但并不清除工作空间。 二、函数及运算 1、运算符: +:加,-:减, *:乘, /:除,\:左除 ^:幂,':复数的共轭转置,():制定运算顺序。 2、常用函数表: sin( ) 正弦(变量为弧度) Cot( ) 余切(变量为弧度) sind( ) 正弦(变量为度数) Cotd( ) 余切(变量为度数) asin( ) 反正弦(返回弧度) acot( ) 反余切(返回弧度) Asind( ) 反正弦(返回度数) acotd( ) 反余切(返回度数) cos( ) 余弦(变量为弧度) exp( ) 指数 cosd( ) 余弦(变量为度数) log( ) 对数 acos( ) 余正弦(返回弧度) log10( ) 以10为底对数 acosd( ) 余正弦(返回度数) sqrt( ) 开方 tan( ) 正切(变量为弧度) realsqrt( ) 返回非负根 tand( ) 正切(变量为度数) abs( ) 取绝对值

信号(MATLAB)实验指导书

《信号与系统》实验指导书 张建奇骆崇编写 浙江工业大学之江学院信息工程分院 2012年2月

目录 实验一MATLAB的基本使用 (1) 一、实验目的 (1) 二、实验原理 (1) 三、实验内容与要求 (8) 四、实验报告 (9) 实验二时域波形的MATLAB实现 (10) 一、实验目的 (10) 二、预习要求 (10) 三、实验原理 (10) 四、实验内容与要求 (18) 五、实验报告 (19) 实验三用MATLAB对系统时域分析 (20) 一、实验目的 (20) 二、预习要求 (20) 三、实验原理 (20) 四、实验内容与要求 (29)

实验一MATLAB的基本使用 一、实验目的 1、了解和掌握MATLAB的基本操作 2、了解MATLAB的库函数 3、会用MATLAB进行简单的操作。 二、实验原理 1、界面操作 MATLAB是“MATrix LABoratory”的缩写(矩阵实验室),它是由美国Mathworks公司于1984年正式推出的一种科学计算软件,由于其强大的功能,在欧美的一些大学里MATLAB已经成为许多诸如数字信号处理、自动控制理论等高级教程的主要工具软件,同时也成为理工科学生,必须掌握的一项基本技能。 当需要运行程序时,只需选择桌面上(或开始)中的MATLAB6.5应用程序图标即可 通常情况下,MATLAB的工作环境主要由一下几个窗口组成: 命令窗口(Command Window)

工作区间浏览器(Workspace) 历史命令窗口(Command History) 图形窗口(Figure) 文本编辑窗口(Editor) 当前路径窗口(Current Directory) MATLAB的命令窗与命令操作 当用户使用命令窗口进行工作时,在命令窗口中可以直接输入相应的命令,系统将自动显示信息。 例如在命令输入提示符“>>”后输入指令: >>t=[1,2,3;4,5,6;7,8,9]; 按回车键(Enter)后,系统即可完成对变量t的赋值。 MATALB提供了非常方便的在线帮助命令(help),它可提供各个函数的用法指南,包括格式、参数说明、注意事项及相关函数等内容。 2、图形窗 MATLAB图形窗(Figure)主要用于显示用户所绘制的图形。 通常,只要执行了任意一种绘图命令,图形窗就会自动产生。

实验1 用MATLAB进行信号频谱分析(推荐文档)

实验1 用MATLAB 进行信号频谱分析 一、实验目的 ㈠ 初步掌握MATLAB 产生常用离散时间信号的编程方法。 ㈡ 学习编写简单的FFT 算法程序,对离散信号进行幅频谱分析。 ㈢ 观察离散时间信号频谱的特点。 二、实验原理 ㈠ 常用的离散时间信号 在 MATLAB 语言主要是研究离散信号的。常用的离散信号有: 1.单位取样序列 ???≠==000 1)(n n n δ 2.单位阶跃序列 ?? ?<≥=0 01 )(n n n u 3.实指数序列 R a n a n x n ∈?=;)( 4.复指数序列 n e n x n j ?=+)(0)(ωσ 5.正(余)弦序列 )c o s ()(0θω+=n n x n ? 6.周期序列 n N n x n x ?+=)()( ㈡ 离散信号的产生 离散信号的图形显示使用stem 指令。 在 MATLAB 中的信号处理工具箱中,主要提供的信号是离散信号。

由于MATLAB 对下标的约定为从1开始递增,例如x=[5,4,3,2,1,0],表示x(1)=5,x(2)=4,X(3)=3… 因此要表示一个下标不由1开始的数组x(n),一般应采用两个矢量,如 n=[-3,-2,-1,0,l ,2,3,4,5]; x=[1,-l ,3,2,0,4,5,2,1]; 这表示了一个含9个采样点的矢量:X(n)={x(-3),x(-2),x(-1),x(0),x(1),x(2),x(3),x(4),x(5)}。 1.单位取样序列 ?? ?≠==δ0 001)(n n n 这一函数实现的方法有二: 方法一:可利用MATLAB 的zeros 函数。 x=zeros(1,N); %建立一个一行N 列的全零数组 x(1)=1; %对X (1)赋1 方法二:可借助于关系操作符实现 n=1:N; x=[n==1]; %n 等于1时逻辑关系式结果为真,x=1;n 不等于1时为假,x=0 如要产生 ?????≤<<=≤≤=-δ2 0210 100)(10)(n n n n n n n n n n n n 则可采用MATLAB 实现: n=n1:n2; x=[(n-n0)==0];%n=n0时逻辑关系式结果为真,x=1;n ≠n0时为

(整理)matlab16常用计算方法.

常用计算方法 1.超越方程的求解 一超越方程为 x (2ln x – 3) -100 = 0 求超越方程的解。 [算法]方法一:用迭代算法。将方程改为 01002ln()3 x x =- 其中x 0是一个初始值,由此计算终值x 。取最大误差为e = 10-4,当| x - x 0| > e 时,就用x 的值换成x 0的值,重新进行计算;否则| x - x 0| < e 为止。 [程序]P1_1abs.m 如下。 %超越方程的迭代算法 clear %清除变量 x0=30; %初始值 xx=[]; %空向量 while 1 %无限循环 x=100/(2*log(x0)-3); %迭代运算 xx=[xx,x]; %连接结果 if length(xx)>1000,break ,end %如果项数太多则退出循环(暗示发散) if abs(x0-x)<1e-4,break ,end %当精度足够高时退出循环 x0=x; %替换初值 end %结束循环 figure %创建图形窗口 plot(xx,'.-','LineWidth',2,'MarkerSize',12)%画迭代线'.-'表示每个点用.来表示,再用线连接 grid on %加网格 fs=16; %字体大小 title('超越方程的迭代折线','fontsize',fs)%标题 xlabel('\itn','fontsize',fs) %x 标签 ylabel('\itx','fontsize',fs) %y 标签 text(length(xx),xx(end),num2str(xx(end)),'fontsize',fs)%显示结果 [图示]用下标作为自变量画迭代的折线。如P0_20_1图所示,当最大误差为10-4时,需要迭代19次才能达到精度,超越方程的解为27.539。 [算法]方法二:用求零函数和求解函数。将方程改为函数 100()2ln()3f x x x =-- MATLAB 求零函数为fzero ,fzero 函数的格式之一是 x = fzero(f,x0) 其中,f 表示求解的函数文件,x0是估计值。fzero 函数的格式之二是 x = fzero(f,[x1,x2])

matlab操作实验报告

实验一matlab基本操作 一、实验目的 熟悉matlab的安装与启动;熟悉matlab用户界面;熟悉matlab功能、建模元素;熟悉matlab优化建模过程。 二、实验设备与工具 1.计算机 2.matlab软件 三、实验步骤 1. 了解matlab的硬件和软件必备环境; 2. 启动matlab; 3. 学习优化建模过程。 四、实验报告要求 1. 写出matlab系统界面的各个构成;以及系统布局区的组成;以及每一部 分的功能; 2. 优化建模过程应用举例 五、实验内容 (一)、Matlab操作界面 1.命令窗口(command window) 2.命令历史窗口(command history) 3.工作空间管理窗口(workspace) 4.当前路径窗口(current directory) (二)、优化建模过程应用举例 1、简单矩阵 123 456 789 A ?? ?? =?? ?? ?? 的输入步骤。 (1)在键盘上输入下列内容 A = [1,1,3; 4,5,6; 7,8,9] (2)按【Enter】键,指令被执行。 (3)在指令执行后,MATLAB指令窗中将显示以下结果: A = 1 2 3 4 5 6 7 8 9

2、矩阵的分行输入。 A=[1,2,3 4,5,6 7,8,9] A = 1 2 3 4 5 6 7 8 9 3、指令的续行输入 S=1-1/2+1/3-1/4+ ... 1/5-1/6+1/7-1/8 S = 0.6345 4、画出衰减振荡曲线t e y t 3sin 3-=及其它的包络线3 0t e y -=。t 的取值范围是]4,0[π。 t=0:pi/50:4*pi; y0=exp(-t/3); y=exp(-t/3).*sin(3*t); plot(t,y,'-r',t,y0,':b',t,-y0,':b') grid 5、画出2222) sin(y x y x z ++=所表示的三维曲面。y x ,的取值范围是]8,8[-。 clear;x=-8:0.5:8; y=x';

matlab信号与系统实验报告

实验一 基本信号的产生与运算 一、 实验目的 学习使用MATLAB 产生基本信号、绘制信号波形、实现信号的基本运算。 二、 实验原理 MATLAB 提供了许多函数用于产生常用的基本信号:如阶跃信号、脉冲信号、指数信号、正弦信号和周期方波等等。这些信号是信号处理的基础。 1、 利用MATLAB 产生下列连续信号并作图。 (1)51),1(2)(<<---=t t u t x (2)300),3 2 sin()(3.0<<=-t t e t x t (3)1.01.0,3000cos 100cos )(<<-+=t t t t x (4)2000),8.0cos()1.0cos()(<<=t t t t x ππ 答:(1)、 >> t=-1:0.02:5; >> x=(t>1); >> plot(t,-2*x); >> axis([-1,5,-3,1]); >> title('杨婕婕 朱艺星'); >> xlabel('x(t)=-2u(t-1)');

(2)、 >> t=0:0.02:30; >> x=exp(-0.3*t).*sin(2/3*t); >> plot(t,x); >> title('杨婕婕朱艺星'); >> xlabel('x(t)=exp(-0.3*t).*sin(2/3*t)');

因为原函数在t=15后x(t)取值接近于零,所以将横坐标改成0到15,看得更清晰 axis([0,15,-0.2,0.6]);

(3)>> t=-0.1:0.01:0.1;x=cos(100*t)+cos(3000*t);plot(t,x); >> title('杨婕婕朱艺星'); >>xlabel('x=cos(100*t)+cos(3000*t)'); 因为t的间隔取太大,以至于函数不够准确,缩小t的间隔:t=-0.1:0.002:0.2;x=cos(100*t)+cos(3000*t); plot(t,x);title('杨婕婕')

Matlab使用技巧

Matlab-scope示波器菜单调用命令set(0,'ShowHiddenHandles','on'); set(gcf,'menubar','figure'); 一般的测量检测模块是把示波器输入端连到要测量的参数所在点或者回路。Multimeter则不一样。楼主有没有注意过有的模块的连接是尖头的,有的是一个圆圈形状的?可以理解为尖头的是弱电或数字信号,可以用示波器直接测。圆头的是强电信号,不能直接用示波器。对于这样的信号,一般是:有些器件(强电器件)打开后,器件设置单中最后有一栏是“测量量”,选择测量什么信号以后,再用Multimeter“不接触测量”。比如:一个RLC模块,最后一栏选定“测量所有电流电压”。注意这之前Multimeter打开左栏是空白的,外观是一个“回”里面一个“0”,选定RLC“测量所有电流电压”后打开Multimeter,左栏就有RLC的电流电压什么的了。选定要测的,移到右栏,就可以用示波器测波形了。此后“回”里面就不是“0”了,而是用户选择测量的数据个数了。matlab 6.5/7.0——simulink模型无法保存及其兼容性问题完整解决方案2009-06-25 09:45 mdl文件在6.5里面做的,但是到了7.0里面却打不开,下面就是相关信息:Warning: Unable to load model file 'd:\MATLAB7\work\*.mdl'. Run "bdclose all;

set_param(0, 'CharacterEncoding', Enc)" where Enc is one of windows-1252, ISO-8859-1, then load the model. The first character that is not supported in the current character encoding setting ('ibm-1386_P100-2002') occurs on line 1795, byte offset 21. To correctly load models with non-ASCII characters, you must explicitly use the character encoding that was used to save the file. Type "help slCharacterEncoding" for more information on setting character encoding and to learn more about which encodings are commonly found on your platform. 或 者是直接保存出现如下信息:Error while saving model 'untitled'using the character encoding setting 'ibm..... 问题产生原因:模型中含有不能识别的字符,比如中文等等,尤其是matlab对中文的支持不是很 好(不知道是不是D版的原因)。解决的办法:(1)在工作空间中输入下列命令,然后打开bdclose all; set_param(0,'CharacterEncoding','windows-1252') 或(2)在工作空间中输入下列命令,然后打开bdclose all set_param(0, 'CharacterEncoding', 'ISO-8859-1') 或(3)在工作空间中输入下列命令,然后

实验一MATLAB基本操作及运算.doc

实验一MATLAB基本操作及运算 一、实验目的 二、实验的设备及条件 三、实验内容 1、建立以下标量: 1) a=3 2) b=5+ 3 j,(j为虚数单位) 3) c=e j 2 / 3 2、建立以下向量: 2.71 38 1) Vb= 28 82 2) Vc=[4 3.8-3.8 -4 ] (向量中的数值从 4 到 -4,步长为 -0.2) 3、建立以下矩阵: 1) 3 L 3 Ma M O M 3 L 3 Ma 为一个 7×7的矩阵,其元素全为 3. 2) 1 11 L91 2 12 O92 Mb M M O M 10 20 L100

Mb 为一个 10× 10的矩阵 . 3) 1 14 5 Mc 2 5 17 3 23 8 4、使用题 1 中的变量计算下列等式的x,y,z的值: 1) x1 1 1 e( (a 15)/6) 2)x2 ( a 15 x1) 3)x3 ln( R [( b c)(b c)]sin( a / 3)) ,其中R表示复数实部。 5、求解函数值 y e ct2/(2.252),其中 c 取值见题 1, t 的取值范围为题 2 中行 向量 Vc。 6、使用题 1 和题 3 中所产生的标量和矩阵计算等式 Mx a Mc (Mc) 1 (Mc )T 其中 * 为矩阵所对应行列式的值,参考det 。 7、函数的使用和矩阵的访问。 1)计算矩阵 Mb 每一列的和,结果应为行向量形式。 2)计算整个矩阵 Mb 的平均值。 3)用向量 [1 1 1] 替换 Mb 的最上一行的值 4)将矩阵 Mb 的第 2~5 行,第 3 到 9 列的元素所构成的矩阵赋值给矩阵SubMb。 5)删除矩阵 Mb 的第一行; 6)使用函数 rand 产生一个 1× 10的向量 r ,并将 r 中值小于 0.5 的元素设置为 0。 8、已知 CellA(1, 1)=‘中国’, CellA( 1, 2)=‘北京’, CellA( 2, 1)是一个 3 乘 3 的单位阵, CellA( 2, 2)=[1 2 3],试用 MATLAB创建一个 2 ×2 的细胞数组 CellA。 9、已知结构数组student 中信息包含有姓名,学号,性别,年龄和班级,试用 MATLAB创建相应的结构数组 student。该数组包含有从自己学号开始连续 5 个同学的信息(如果学号在你后面的同学不足 5 个则往前排序),创建完成后查看自己的信息。

(图论)matlab模板程序

(图论)matlab模板程序

第一讲:图论模型 程序一:可达矩阵算法 %根据邻接矩阵A(有向图)求可达矩阵P(有向图) function P=dgraf(A) n=size(A,1); P=A; for i=2:n P=P+A^i; end P(P~=0)=1; %将不为0的元素变为1 P; 程序二:无向图关联矩阵和邻接矩阵互换算法F表示所给出的图的相应矩阵 W表示程序运行结束后的结果 f=0表示把邻接矩阵转换为关联矩阵 f=1表示把关联矩阵转换为邻接矩阵 %无向图的关联矩阵和邻接矩阵的相互转换 function W=incandadf(F,f) if f==0 %邻接矩阵转换为关联矩阵 m=sum(sum(F))/2; %计算图的边数 n=size(F,1); W=zeros(n,m); k=1; for i=1:n for j=i:n if F(i,j)~=0 W(i,k)=1; %给边的始点赋值为1 W(j,k)=1; %给边的终点赋值为1 k=k+1; end end end elseif f==1 %关联矩阵转换为邻接矩阵 m=size(F,2); n=size(F,1); W=zeros(n,n); for i=1:m a=find(F(:,i)~=0); W(a(1),a(2))=1; %存在边,则邻接矩阵的对应值为1 W(a(2),a(1))=1;

end else fprint('Please imput the right value of f'); end W; 程序三:有向图关联矩阵和邻接矩阵互换算法 %有向图的关联矩阵和邻接矩阵的转换 function W=mattransf(F,f) if f==0 %邻接矩阵转换为关联矩阵 m=sum(sum(F)); n=size(F,1); W=zeros(n,m); k=1; for i=1:n for j=i:n if F(i,j)~=0 %由i发出的边,有向边的始点 W(i,k)=1; %关联矩阵始点值为1 W(j,k)=-1; %关联矩阵终点值为-1 k=k+1; end end end elseif f==1 %关联矩阵转换为邻接矩阵 m=size(F,2); n=size(F,1); W=zeros(n,n); for i=1:m a=find(F(:,i)~=0); %有向边的两个顶点 if F(a(1),i)==1 W(a(1),a(2))=1; %有向边由a(1)指向a(2) else W(a(2),a(1))=1; %有向边由a(2)指向a(1) end end else fprint('Please imput the right value of f'); end W;

matlab编程技巧

1、. Ctrl+C 中断正在执行的操作 如果程序不小心进入死循环,或者计算时间太长,可以在命令窗口中使用Ctrl+c来中断。MATLAB这时可能正疲于应付,响应会有些滞后。 2. figure命令新建一个绘图窗口 figure 可以打开一个空的绘图窗口,接下的绘图命令可以将图画在它里面,而不会覆盖以前的绘图窗口。当有多个figure窗口时,在命令窗口中执行如Plot等命令将覆盖当前figure窗口中的对象。所谓的当前figure窗口,也就是最后一次查看的窗口(可以用命令gcf得到)。 figure(N),将编号为N的窗口置为当前figure,出现在所有窗口的最前面,如果该窗口不存在,则新建一个编号为N的空白figure。 3. 注释掉一段程序:%{、%}。 经典方法是用 if 0,但缺点是不够直观,注释掉的内容仍然保持代码的颜色。现在可以用 %和{ 的组合。输入%{后,后面的代码都会变绿,在注释结束的地方再加上 %} 。 也可以选中要注释内容,在右键菜单中选择Comment (Uncomment去掉注释标记),或使用快捷键Ctrl+R。 将光标放在需要注释的行中,按Ctrl+R,将该行变为注释。取消注释也是一样的,快捷键为Ctrl+T。 4. doc 命令名,打开命令的帮助文档 与help命令不同,帮助文档MATLAB Help中对命令的描述更详细,往往还有一些例子,更便于理解。 5. clc 清屏 清除命令窗口中的所有输入和输出信息,不影响命令的历史记录。 6. clear 和clear all clear 变量名:可以清除workspace中的无用的变量,尤其是一些特别大的矩阵,不用时及时清理,可以减少内存占用。 clear all 清除所有的变量,使workspace一无所有,当重新开始一次算法验证时,最好执行一次,让workspace中的变量一目了然。 7. close all 如果开了多个绘图窗口,用这个命令将它们一起关掉。 8. 上下光标键↑↓ 在命令窗口中,上下光标键可以将历史记录中的命令复制到输入位置,便于快速重新执行。如果输入命令的前几个字母如 [row, col] =,再使用光标键,则只会选择以这些字母开始的命令。 9. Tab补全 对名称记得不太清楚的命令,可以输入开头的几个字母,然后按Tab键,当只有一个以这些字母开头的命令时,将自动补全命令名,否则显示一个命令名列表,方便从中选择。当然,只在命令窗口中有效。 10. cell模式 在一个长长的脚本m文件中,可能需要对其中的一段反复修改,查看执行效果,这时,cell模式就非常有用了。cell模式相当于将其中的代码拷贝到命令窗口中运行。两个%后接一个空格(%% )开始一个cell。将输入光标放到一个cell中时,背景将变为浅黄色,Ctrl+Enter执行cell中的代码。 执行cell中代码时不需要保存m文件,该m文件可以不在路径列表中。 cell模式中,断点不起作用,当然,调用的子程序中的断点还是正常的。 11. 获取文件列表,批处理

基带信号眼图实验——matlab仿真

基带信号眼图实验——matlab 仿真

————————————————————————————————作者:————————————————————————————————日期: ?

数字基带信号的眼图实验——matla b仿真 一、实验目的 1、掌握无码间干扰传输的基本条件和原理,掌握基带升余弦滚降系统的实现方法; 2、通过观察眼图来分析码间干扰对系统性能的影响,并观察在输入相同码率的NRZ 基带信号下,不同滤波器带宽对输出信号码间干扰大小的影响程度; 3、熟悉MATL AB 语言编程。 二、实验预习要求 1、复习《数字通信原理》第七章7.1节——奈奎斯特第一准则内容; 2、复习《数字通信原理》第七章7.2节——数字基带信号码型内容; 3、认真阅读本实验内容,熟悉实验步骤。 三、实验原理和电路说明 1、基带传输特性 基带系统的分析模型如图3-1所示,要获得良好的基带传输系统,就应该 () n s n a t nT δ-∑() H ω() n s n a h t nT -∑基带传输抽样判决 图3-1?基带系统的分析模型 抑制码间干扰。设输入的基带信号为()n s n a t nT δ-∑,s T 为基带信号的码元周期,则经过基 带传输系统后的输出码元为 ()n s n a h t nT -∑。其中 1 ()()2j t h t H e d ωωωπ +∞ -∞ = ? ?(3-1) 理论上要达到无码间干扰,依照奈奎斯特第一准则,基带传输系统在时域应满足: 10()0,s k h kT k =?=? ? , 为其他整数 ?? ?(3-2) 频域应满足:

图论算法及matlab程序的三个案例

图论实验三个案例 单源最短路径问题 Dijkstra 算法 Dijkstra 算法是解单源最短路径问题的一个贪心算法。其基本思想是,设置一个顶点集合S 并不断地作贪心选择来扩充这个集合。一个顶点属于集合S 当且仅当从源到该顶点的最短路径长度已知。设v 是图中的一个顶点,记()l v 为顶点 v 到源点v 1的最短距离, ,i j v v V ?∈,若 (,)i j v v E ?,记i v 到j v 的权ij w =∞。 Dijkstra 算法: ① 1{}S v =,1()0l v =;1{}v V v ??-,()l v =∞,1i =,1{}S V v =-; ② S φ=,停止,否则转③; ③ ()min{(),(,)} j l v l v d v v =, j v S ∈,v S ?∈; ④ 存在 1 i v +,使 1()min{()} i l v l v +=,v S ∈; ⑤ 1{} i S S v +=, 1{} i S S v +=-,1i i =+,转②; 实际上,Dijkstra 算法也是最优化原理的应用:如果12 1n n v v v v -是从1v 到 n v 的最短路径,则 12 1 n v v v -也必然是从1v 到 1 n v -的最优路径。 在下面的MATLAB 实现代码中,我们用到了距离矩阵,矩阵第i 行第j 行元 素表示顶点i v 到j v 的权ij w ,若i v 到j v 无边,则realmax ij w =,其中realmax 是 MATLAB 常量,表示最大的实数+308)。 function re=Dijkstra(ma)

信号与系统MATLAB实验总汇

实验一、MATLAB 编程基础及典型实例 一、实验目的 (1)熟悉MATLAB 软件平台的使用; (2)熟悉MATLAB 编程方法及常用语句; (3)掌握MATLAB 的可视化绘图技术; (4)结合《信号与系统》的特点,编程实现常用信号及其运算。 示例一:在两个信号进行加、减、相乘运算时,参于运算的两个向量要有相同的维数,并且它们的时间变量范围要相同,即要对齐。编制一个函数型m 文件,实现这个功能。function [f1_new,f2_new,n]=duiqi(f1,n1,f2,n2) a=min(min(n1),min(n2)); b=max(max(n1),max(n2)); n=a:b; f1_new=zeros(1,length(n)); f2_new=zeros(1,length(n)); tem1=find((n>=min(n1))&(n<=max(n1))==1); f1_new(tem1)=f1; tem2=find((n>=min(n2))&(n<=max(n2))==1); f2_new(tem2)=f2; 四、实验内容与步骤 (2)绘制信号x(t)=)3 2sin(2t e t ?的曲线,t 的范围在0~30s ,取样时间间隔为0.1s 。t=0:0.1:30; y=exp(-sqrt(2)*t).*sin(2*t/3); plot(t,y);

(3)在n=[-10:10]范围产生离散序列:?? ?≤≤?=Other n n n x ,033,2)(,并绘图。n=-10:1:10; z1=((n+3)>=0); z2=((n-3)>=0); x=2*n.*(z1-z2); stem(n,x);(4)编程实现如下图所示的波形。 t=-2:0.001:3; f1=((t>=-1)&(t<=1)); f2=((t>=-1)&(t<=2)); f=f1+f2; plot(t,f); axis([-2,3,0,3]);

MATLAB使用方法1

A a abs绝对值、模、字符的ASCII码值acos反余弦 acosh反双曲余弦 acot反余切 acoth反双曲余切 acsc反余割 acsch反双曲余割 align启动图形对象几何位置排列工具all所有元素非零为真 angle相角 ans表达式计算结果的缺省变量名any所有元素非全零为真 area面域图 argnames函数M文件宗量名 asec反正割 asech反双曲正割 asin反正弦 asinh反双曲正弦 assignin向变量赋值 atan反正切 atan2四象限反正切 atanh反双曲正切 autumn红黄调秋色图阵 axes创建轴对象的低层指令 axis控制轴刻度和风格的高层指令 B b bar二维直方图 bar3三维直方图 bar3h三维水平直方图 barh二维水平直方图 base2dec X进制转换为十进制 bin2dec二进制转换为十进制blanks创建空格串 bone蓝色调黑白色图阵 box框状坐标轴 break while或for环中断指令brighten亮度控制C c capture(3版以前)捕获当前图形 cart2pol直角坐标变为极或柱坐标 cart2sph直角坐标变为球坐标 cat串接成高维数组 caxis色标尺刻度 cd指定当前目录 cdedit启动用户菜单、控件回调函数设计工具 cdf2rdf复数特征值对角阵转为实数块对角阵 ceil向正无穷取整 cell创建元胞数组 cell2struct元胞数组转换为构架数组celldisp显示元胞数组内容 cellplot元胞数组内部结构图示 char把数值、符号、内联类转换为字符对象 chi2cdf分布累计概率函数 chi2inv分布逆累计概率函数 chi2pdf分布概率密度函数 chi2rnd分布随机数发生器 chol Cholesky分解 clabel等位线标识 cla清除当前轴 class获知对象类别或创建对象 clc清除指令窗 clear清除内存变量和函数 clf清除图对象 clock时钟 colorcube三浓淡多彩交叉色图矩阵colordef设置色彩缺省值 colormap色图 colspace列空间的基 close关闭指定窗口 colperm列排序置换向量 comet彗星状轨迹图 comet3三维彗星轨迹图 compass射线图

图论与网络优化课程设计_Matlab实现

图论与网络优化课程设计 四种基本网络(NCN、ER、WS、BA) 的构造及其性质比较 摘要:网络科学中被广泛研究的基本网络主要有四种,即:规则网络之最近邻耦合网络(Nearest-neighbor coupled network),本文中简称NCN;ER随机网络G(N,p);WS小世界网络;BA无标度网络。本文着重研究这几种网络的构造算法程序。通过运用Matlab软件和NodeXL网络分析软件,计算各种规模下(例如不同节点数、不同重连概率或者连边概率)各自的网络属性(包括边数、度分布、平均路径长度、聚类系数),给出图、表和图示,并进行比较和分析。 关键字:最近邻耦合网络;ER随机网络;WS小世界网络;BA无标度网络;Matlab;NodeXL。

四种基本网络(NCN、ER、WS、BA) 的构造及其性质比较 1.概述 1.网络科学的概述 网络科学(Network Science)是专门研究复杂网络系统的定性和定量规律的一门崭新的交叉科学,研究涉及到复杂网络的各种拓扑结构及其性质,与动力学特性(或功能)之间相互关系,包括时空斑图的涌现、动力学同步及其产生机制,网络上各种动力学行为和信息的传播、预测(搜索)与控制,以及工程实际所需的网络设计原理及其应用研究,其交叉研究内容十分广泛而丰富。网络科学中被广泛研究的基本网络主要有四种,即:规则网络之最近邻耦合网络(Nearest-neighbor coupled network),本文中简称NCN;ER随机网络G(N,p);WS小世界网络;BA无标度网络。本文着重研究这几种网络的构造算法程序。计算各种规模下(例如不同节点数、不同重连概率或者连边概率)各自的网络属性(包括边数、度分布、平均路径长度、聚类系数),给出图、表和图示,并进行比较和分析。 2.最近邻耦合网络的概述 如果在一个网络中,每一个节点只和它周围的邻居节点相连,那么就称该网络为最近邻耦合网络。这是一个得到大量研究的稀疏的规则网络模型。 常见的一种具有周期边界条件的最近邻耦合网络包含围成一个环的N个节点,其中每K个邻居节点相连,这里K是一个偶数。这类网络的一个重要特征个节点都与它左右各/2 就是网络的拓扑结构是由节点之间的相对位置决定的,随着节点位置的变化网络拓扑结构也可能发生切换。 NCN的Matlab实现: %function b = ncn(N,K) %此函数生成一个有N个节点,每个节点与它左右各K/2个节点都相连的最近邻耦合网络 %返回结果b为该最近邻耦合网络对应的邻接矩阵 function b = ncn(N,K) b=zeros(N); for i = 1:N for j = (i+1):(i+K/2) if j<=N b(i,j)=1; b(j,i)=1; else b(i,j-N)=1;

实验一----信号的MATLAB表示及信号的运算

实验一----信号的MATLAB表示及信号的运算

信号的MATLAB表示及信号的运算 一、实验目的 1.掌握的MATLAB使用; 2.掌握MATLAB生成信号的波形; 3.掌握MATLAB分析常用连续信号; 4.掌握信号的运算的MATLAB实现。 二、实验工具 1.台式电脑一台; 2.MATLAB7.1软件环境; 三、实验内容 编写程序实现下列常用函数,并显示波形。 1.正弦函数 f(t)=Ksin(wt+a); 2.矩形脉冲函数f(t)=u(t)-u(t-t0); 3.抽样函数 sa(t)=sint/t; 4.单边指数函数 f(t)=Ke-t; 5.已知信号f1(t)=u(t+2)-u(t-2), f2(t)=cos(2pt),用MATLAB绘制f1t)+f2(t)和f1(t)*f2(t)的波形。

四、实验要求 预习信号的时域运算和时域变换(相加、相乘、移位、反折、尺度变化、例项)相关知识。 五、实验原理 在某一时间区间内,除若干个不连续的点外,如果任意时刻都可以给出确定的函数值,则称信号为连续时间信号,简称为连续信号。MATLAB提供了大量生成基本信号的函数,所以可利用连续信号在等时间间隔点的取值来近似表示连续信号,这些离散的数值能被MATLAB处理,并显示出来。 六、实验步骤 1.打开MATLAB7.1软件,并在老师的指导和带领下逐步熟悉此软件; 2.编写正弦函数程序: clear all; t=-8:.01:8; k=2;w=1;a=pi/4; f=k*sin(w*t+a); plot(t,f);

grid; xlabel('t'); ylabel('f(t)'); axis([-8 8 -3 3]); 3.编写矩形脉冲信号函数程序: clear all; t=-4:0.001:4; T=1; f1=rectpuls(t,4*T); f2=cos(2*pi*t); plot(t,f2+f1); axis([-4 4 -1.5 2.5]); grid on; figure plot(t,f2.*f1); axis([-4 4 -1.5 1.5]); grid on;

(完整版)matlab的一些画图技巧

matlab中如何在指定一点画一个填充颜色的小圆 plot(1,1,'r.','markersize',50) 二维作图 绘图命令plot绘制x-y坐标图;loglog命令绘制对数坐标图;semilogx和semilogy命令绘制半对数坐标图;polor命令绘制极坐标图. 基本形式 如果y是一个向量,那么plot(y)绘制一个y中元素的线性图.假设我们希望画出 y=[0., 0.48, 0.84, 1., 0.91, 6.14 ] 则用命令:plot(y) 它相当于命令:plot(x, y),其中x=[1,2,…,n]或x=[1;2;…;n],即向量y的下标编号, n为向量y的长度 Matlab会产生一个图形窗口,显示如下图形,请注意:坐标x和y是由计算机自动绘出的. 图4.1.1.1 plot([0.,0.48,0.84,1.,0.91,6.14])

上面的图形没有加上x轴和y轴的标注,也没有标题.用xlabel,ylabel,title 命令可以加上. 如果x,y是同样长度的向量,plot(x,y)命令可画出相应的x元素与y元素的x-y坐标图.例: x=0:0.05:4*pi; y=sin(x); plot(x,y) grid on, title(' y=sin( x )曲线图' ) xlabel(' x = 0 : 0.05 : 4Pi ') 结果见下图. 图4.1.1.2 y=sin(x)的图形 title图形标题 xlabel x坐标轴标注 ylabel y坐标轴标注 text标注数据点

legend 在右上角加解释 文字 grid给图形加上网格 hold保持图形窗口的图形 表4.1.1.1 Matlab图形命令 多重线 在一个单线图上,绘制多重线有三种办法. 第一种方法是利用plot的多变量方式绘制: plot(x1,y1,x2,y2,...,xn,yn) x1,y1,x2,y2,...,xn,yn是成对的向量,每一对x, y在图上产生如上方式的单线.多变量方式绘图是允许不同长度的向量显示在同一图形上.第二种方法也是利用plot绘制,但加上hold on/off命令的配合:plot(x1,y1) hold on plot(x2,y2) hold off 第三种方法还是利用plot绘制,但代入矩阵:

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