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

matlab学习笔记

matlab学习笔记
matlab学习笔记

1).

>> x=-2*pi:0.1:2*pi;

>> y1=sin(x);

>> y2=sin(x+pi/3)+2;

>> y3=cos(x);

>> plot(x,y1,'.-');

>> hold on

>> plot(x,y2,'.-')

>> hold on

>> plot(x,y3,'.-')

>> plot(x,y1,'.-');

>> hold on

>> plot(x,y2,'.-')

>> hold on

>> plot(x,y3,'.-')

>> h=legend('sin($x$)','sin($x+\frac{\pi}{3}$)','cos($x$)')

h =

159.0056

Warning: Unable to interpret TeX string "\frac{\pi}{3}$)".

>> set(h,'Interpreter','latex')

>> xlabel('$x$','Interpreter','latex')

>> ylabel('$y$','Interpreter','latex') %添加函数图标及纵横坐标轴名称,如下图显示>>

2).常用画图命令:

Surf (x,y,z )、ezsurf(z)、ezmesh(z)

%使用surf 画图,要求想x,y,z 是同维数的矩阵

%使用ezsurf 和ezmesh 时,曲面函数必须能写成显函数的形式,如sin()/()Z xy xy =

%可以使用@(x,y )+函数表达式 定义匿名函数,如@(,)sin(*)/(*)z x y x y x y = %surf(x,y,z,x); %设置图形颜色变化方向为沿x 轴,此项可省,一般不要求。 图形属性: axis 属性

Axis tight %将坐标轴减小到可能的最小尺寸 Axis equal %使x,y 轴的刻度设置相同 Axis square %使图形长宽相同 Axis off %不显示坐标轴

Axis([x0 x1 y0 y1 z0 z1]); %手动改变轴的范围

View (n,m ) %设定图形观察视角,n 为在水平方向测量的角度,m 为从水平面向上测量的仰俯角。

Subplot(n,m,x) %将图像窗口分为nxm 个子窗口,当前指的是第x 个,按行数。当要对第y 个图做一定的设置时,先输入命令subplot(n,m,y),然后再输入要做的设置命令。

Legend (‘xxx ’) %给图形设置图标,也可指定图标的位置,默认为右上角。 Text (x,y,‘xxx ’) %给图像添加注释内容,注释位于图形中(x,y )处。 Gtext(‘xxx ’); %给图像添加注释,位置随意,将十字光标点在哪儿就放哪儿。 delete(findobj('type','text')) %删除通过gtext()命令添加的注释内容 Close all %关闭所有图像窗口 Title (’xxx ‘) %给图形添加标题

Material 属性,设置曲面的材料属性,值有dull,shiny,metallic ,该命令可结合用在surf,mesh,pcolor,fill,fill3等函数中。

Plotyy(x,y1,x,y2,’plot ’) %在同一个图中画出两个图形,公用一个横轴,纵轴不同,分列两边,且纵轴刻度设置可不同,自动的。

Semilogx 和semilogy 表示横轴和纵轴采用对数坐标画出x-y 的图形,用法为semilogx(x,y)和semilogy(x,y).

Loglog(x,y) %横纵轴均采用对数形式画出x-y 图形

Grid on %打开网格,系统默认为grid off ,即关闭网格。 A=Complex(x,y) %产生复数A=x+yi Real(A)=x,imag(A)=y.

Fill (x,y,n ) %产生一个有x,y 坐标定义的填充颜色的图形,填充颜色根据n 对色图进行索引确定。

light('Color',选项一,'Style',选项二,'Position',选项三),选项一为表示光的颜色的矩阵,取RGB 三元组或相应的颜色字符。选项二可取为'infinite'和'local'两个值,分别表示无穷远光和近光。选项三为三维坐标点组成的向量形式[x,y,z]。对远光,它表示光穿过该点射向原点;对于近光,它表示光源所在位置。假如函数不包含任何参数,则采用缺省设置:白光、无穷远光、穿过(1,0,1)射向坐标原点。一般后两个参数可省,默认。--例: [x,y,z]=peaks; surf(x,y,z); shading interp;

light('Color',[1 0 1],'Style','local','Position',[-4,-4,10]); %此命令表示在点[-4,-4,10]处有一处品红色光源

例1.画出椭圆柱面图:

3cos ,2sin ,

,,x y z t t R αα=??

=??=∈?

编写的matlab 程序如下:

@(,)3*cos();

%y @(,)2*sin();@(,);

(,,)

x a t a a t a z a t t ezmesh x y z ===定义匿名函数

%因为没能写成显函数的

形式,所以调用命令函数ezmesh 时使用格式ezmesh(x,y,z),当能写成显函数时可以直接调用格式ezmesh(z)。

例2.绘制二元函数三维表面图:

sin()xy z xy =

程序如下:

[,]([3:0.2:3]);

%@(,)sin(*)/(*);

()

%(),x y meshgrid z x y x y x y ezmesh z ezsurf z =-=产生所定范围内的二维点阵

或用所画图像颜色效果不同

Meshgrid 的用法举例:两种情况

3)积分命令:

a).Int---符号积分法

应用: int(s)符号表达式s 的不定积分.

int(s,v)符号表达式s 关于变量v 的不定积分.

int(s,a,b)符号表达式s 的定积分, a,b 分别为上﹑下限. int(s,v,a,b)符号表达式s 关于变量v 从 a 到b 的定积分. 当int 求不出符号解,会自动转求数值解.

注:使用符号积分时需结合使用syms --符号定义命令,例如声明两个符号变量 x,y,matlab 语句格式为:Syms x,y;

例3.求函数不定积分:sin()cos(2*)exp(.^2)x x x ++ Matlab 程序为:

;

sin()cos(2*x)exp(.^2);

%A

int()

%A x z

syms x A x x z A =++=函数对函数求关于的导数并赋给

b).一重数值积分命令:quad(f,a,b)、quadl(f,a,b) 其中f 为积分函数,a 、b 为积分上下限。 例4.求数值积分

1

2

23

1x x

++

?

Matlab 程序如下:

@()(2*3)./(1.^2);

(,0,1)

f x x x I quad f =++=或用I=quadl(f,0,1),结果的精度不同

c).二重数值积分命令:dblquad(f,a,b,c,d)

其中a,b 为外重积分限,c,d 为内重积分限,f 为积分函数。 d).三重数值积分命令:triplequad(f,a,b,c,d,e,f)

其中a,b 为外重积分限,c,d 为中间重积分限,e,f 为内重积分限,f 为积分函数。 4).几个特殊矩阵:

eye(n):n 阶单位矩阵; Ones(n):n 阶1矩阵; Zeros(n):n 阶0矩阵;

5).矩阵运算:

乘法:格式 a*b; %注意和数组矩阵乘法区别 a.*b;注,乘以逆和标准除法等同右乘,后除可抵消对矩阵做的左乘效果。

求逆:格式 inv(a)和运算符向后除\,例inv(a)*c<=>a\c;注,c/a 表示'

'

(\)'C

B

指数运算:

k

-k

A A 和,其中k 为正数,分别表示A 连乘K 次,和???

rot90(A,n):将矩阵A 逆时针旋转n 个90度 tril(A):保留A 的下三角并将上三角填充为0.

unit8,unit16(A):将A 中数据转化为固定位数的无符号整数类型。

6)几个命令函数:

find ():查找命令;

例:a(find(a==0))=inf ,表示把a 矩阵中的0元素全部替换为无穷。

Min():查找最小命令;

Numel(a),计算矩阵a的元素个数;

[y n]=Max(x,[],2),查找最大元素及其位置,返回值y为最大值,n为对应位置

7)Matlab与记事本的数据交互:

A).matlab读入记事本文件中的数据:

如果记事本文件*.txt中内容全部为数值是,可直接调用命令A=load(‘*.txt’),由此matlab中会生成一个数值矩阵A。

如果文件中不全为数值,则不能用load命令,应该用[name,type,value]textread (‘*.txt’,‘%s %n %f’,2),此格式代表文件中第一列为字符串,第二列为整数,第三列为浮点数,读取命令只读取文件中的前两行,生成三个列矩阵name type value,具体情况具体分析。

注:要求所读取的txt文件的位置必须在matlab中“当前目录”中包含,如当前目录为:D:\temp\work,则txt文件必须保存在该路径下,否则命令执行出错。

Fscanf():更强大的一个读取命令。

B).将matlab数据写入记事本文件中:

如果只想保存数值数据,则可调用save命令,格式为:save filename a b ...; 代表把变量a ,b ...等值存入名为filename的.mat格式的文件中,该文件的路径为“当前目录”。且该文件只能用matlab打开,其他软件无法打开。

如果想把各种数据保存为.txt文件,则应该使用fprintf命令,格式为:

Fid=fopen(‘file.txt’,wt); %打开一个文件,并返回一个指标fid

Fprintf(fid,’数据表1\n’); %可省

Name=’sally’;types=1;x=3;y=4; %赋值一次

Fprintf(fid,’%s type%n %f %f’,name,types,x,y); %写入一次

Name=’jim’;types=2;x=1;y=3; %第二次赋值

Fprintf(fid,’%s type%n %f %f’,name,types,x,y); %第二次写入

Fclose(fid); %关闭文件

则生成一个txt文件,内容为:

数据表1

Sally 3 4

Jim 1 3

8)数据拟合:

A).多项式拟合:

指令拟合:p=polyfit(x,y,n); %返回系数矩阵p;

Yi=Polyval(p,xi); %计算多项式的拟合函数值

用命令poly2sym(p)输出拟合函数表达式

图形窗口拟合:先画出散点图,plot(x,y,’r*’);然后在图形窗口上点击Tools 下的basic fitting,打开拟合对话框进行操作。

B).指定函数类型拟合:

假设根据散点图知道拟合函数类型为f(x)形式的,则可利用.m进行拟合。

编写m文件:

[][]()s ;% x ;;;;;%

y ;;;;;

f fittype('f x ','independent','t','coefficients',{'a','k','w'});

%t c (,,)%yms t t fun fit x y f ====定义自变量符号输入数据定义拟合函数类型,自变量,系数a,k,w;显示拟合函数

xi=0:.1:15;yi=cfun(xi);

plot(x,y,'r*',xi,yi,'b-');

然后保存M 文件,命名为cfun.m ;然后就可以在matlab 命令窗口中输入文件名执行文件内容了,产生拟合结果。

C).曲线拟合工具箱:

首先输入要拟合的数据x 和y 矩阵,在matlab 命令窗口中直接输入cftool(x,y)即可调出工具箱窗口界面,然后选择拟合类型等参数进行拟合即可。 8).matlab 中的各种数学函数

inv 是矩阵求逆

quad 是求积分运算,并且是定积分 roots 是多项式求根

Round(x)就近取整

9).线性规划问题:

Matlab 中线性规划的标准型为:

%..%min T

x

x s t Ax b c ≤目标函数

约束条件

,当约束条件不是标准型时必须转化为标准型。

基本函数形式为linprog(c,A,b),它的返回值是向量x 的值。还有其他一些调用格

式,如:

0[,](,,,,,,,,)x fval linprog c A b Aeq beq LB UB options x =,其中,fval 返回目标函数的值,Aeq 和beq 对应等式约束;UB Ax b LB =和分别是x的上下界,0

x

为x的初始值,op tions

是控制参数。

例6.解下列线性规划问题:

123

123123123max 7

..10,,0235253z s t x x x x x x x x x x x x =+-?++=?

-+≥??

≥?

,可以编写M 文件,如下:

[2;3;5];

[2,5,1];10;[1,1,1];7;

(,,,,,(3,1));%-c ,(3,1)'*;

%c a b aeq beq x linprog c a b aeq beq zeros c zeros value c x =-=--=-===-=是而非为初始值目标函数值

注:约束条件中有等号的药单独拿出来,写成aeq 和beq 的形式,目标函数是最大值时要加符号变成最小;当目标函数中含有常数项时要添加一个变量i

x ,并在约束条件中添加

一个等式

1i

x

=。

10)图形处理:

Matlab 可识别的图片文件格式有:tiff ,png,hdf,bmp,jpg,jpeg,pcx,xwd,cur,ico 等; Matlab 读取图像并转化为真彩图像、灰度图像、索引图像中的任一种。三种图形介绍略。

读取命令:p=imread(‘filename.jpg ’,’jpg ’),matlab 使用这一个命令读取所有类型的图形文件。返回值p 为一个MxNx3的包含unit8类型像素颜色值的数组,第二个参数‘jpg ’给出了明确的文件格式,该参数可选,因为matlab 一般能够从文件的内容正确推断出该文件的格式。

显示命令:image (p ),只是该函数是对对象进行了缩放,若要得到实际尺寸的图形,可用命令函数imshow();

写入命令:imwrite(data,’newfilename.jpg ’,’jpg ’),第三个参数jpg 指定输出文件的格式,data 为像素数据矩阵,该命令将data 数据写入硬盘,存储格式为jpg 格式。

movie2avi :动画存储为avi 格式命令 分析例子:

求助,如何将下列动画存为avi 格式。

set(gca,'nextplot','replacechildren');[a,b,c]=sphere(30);mesh(2*a,2*b,2*c,2*c);hidden off;hold on;for j=1:24[x,y]=meshgrid([-sqrt(2):0.01:sqrt(2)*j/24]);z=x.^2+y.^2;mesh(x,y,z);axis equal;F=getframe;endmovie(F ,2);

用matlab 制作简单仿真动画,并生成.avi 格式的电影文件:

第一种形式:利用for 循环,在一定时间内控制图形窗口图像的显示,产生一段动态的演示过程: 如下:

set(gcf,'color','green'); grid on;

set(gca,'zlim',[-10,10]'); set(gca,'xlim',[-10,10]); set(gca,'ylim',[-10,10]); for i=1:10

set(gca,'view',[-i*3.75,3*i] ); pause(0.2); end

第二种形式:利用moviein和movie函数,现将生成的动画存入一个由movien

函数定义的数组中,每一帧为数组的一个元素,最后用movie重复演示,movie后面的数字代表演示次数。

x=[-30:0.2:30];

y=[-30:0.2:30];

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

n=5;

M = moviein(n);

for i=1:n

z=sin(sqrt(2*(x).^2+2*(y).^2)-2*pi*i/10);

zz=plot3(x,y,z,'parent',gca);

mesh(x,y,z);

grid on;

colormap([0,0.9,0.5]);

light('position',[1,1,2],'style','local','color','white');

material([0.5,0.4,0.3,10,0.3]);

set(gca,'zlim',[-10,10]');

M(i)=getframe(gca);

end

movie(M,20)

创建电影剪辑文件,并存储起来,如下:

aviobj=avifile('文件名.avi','fps',3);%定义一个avi文件,

%A VIOBJ = A VIFILE(FILENAME,'PropertyName',V ALUE,'PropertyName',V ALUE,...)

%各属性详细说明见matlab帮助

for i=1:n

%在当前窗体上生成一帧图像

frame=getframe(gca); %获得一帧图像

aviobj=addframe(aviobj,frame);%并加到电影剪辑文件中

end

aviobj=close(aviobj);%关闭文件,结束数值仿真模拟过程。

11).声音的处理

Matlab提供两种读取声音文件的函数:wavread(‘filename.wav’)和auread(‘filename.au’),非别读取wav格式的文件盒au格式的文件;且两个函数均返回三个变量:取值(-1,1)之间的声音向量(n行1列)--代表振幅、以HZ为单位的采样频率(1个常数)和记录数据所用的位数(8位或16位,分辨率不同而已。%分辨率取值一般8位或16位%)。

播放命令:sound(data,rate),其中data是声音值向量,rate为回放频率,一般等于录音时的频率。该函数直接将数据传递为计算机的声卡。

例:[b16,f16,n]=wavread(‘filename.wav’);

Sound(b16,f16);

[b8,f8,n]=wavread(‘filename.wav’);

Sound(b8,f8); %可分辨8位和16位音质的差别

声音片段剪切:例

[a,b,n]=wavread(‘filename.wav’);

C=[a(1:2000);a(3000:end)]; %将文件中2000-3000的片段剪切掉并将剩余片段组合起来存入c。

C=C*0.5; %将音频音量降低一半

Sound(a,b); %播放原文件

Sound(c,b); %播放剪切后的文件,对比效果

Plot(a); %画出原音频图像

Plot(c)%画出剪切后的文件图形

快速傅里叶变换fft(x):x为时域采样序列,生成取值为复数的频谱文件;ifft(x):逆变换,重新生成时域序列。

12)随机排序

如:x=[1,2,3,4,3,2,1,5],编写程序将数据随机排序,程序如下

X=X(randperm(numel(x)))

numel(x)获得变量长度

randperm(n)产生长度为n的随机数列如:

randperm(4)

ans=

3 2 1 4

X(...) 取得X中相应元素产生新数列

附录A:matlab特殊字符、保留字和函数

.* 数组乘法

/ 矩阵除法

./ 数组除法

\ 矩阵后除,等同求逆效果

^ 矩阵指数运算

.^ 数组指数运算

< 小于

> 大于

<= 小于等于

>= 大于等于

== 等于

~= 不等

& 元素级逻辑与(向量)

&& 短路逻辑与(标量)

| 元素级逻辑或(向量)

|| 短路逻辑或(标量)

~ 一元非

逻辑函数

All(a)若逻辑向量a中的所有值都为真,则返回值为真

And(a,b) 若a,b都为真,则返回值为真

Any(a) 若逻辑向量a中有元素为真,则返回值为真

Not(a) 非a,即若a为真,则返回值为假,若a为假,则返回值为真Or(a,b) 若a或b为真,则返回值为真

文件输入输出

load

save

csverad

fprinft

imread

imwrite

Fclose(file)

格式控制符%q由双引号界定的引用串

%e指数表示法%s字符串

%f定点或十进制表示法\n换行

%g定点或指数表示法\t制表 \b退格

Ans默认储存变量Close all关闭所有窗口

Clc清屏Exit,quit关闭matlab

Clear清楚变量Load载入文件

Clf清空当前图形Who,whos查看所有变量

Eps两个浮点数之间可能出现的最小差Pi圆周率

False逻辑假True逻辑真

Inf无穷大

NaN非数值

基本数学函数Log(x)自然对数

Exp(x)指数函数Log10(x)以10为底的对数

Fix(x)将x向0方向舍入取整Mod(x,a)计算x/a的余数

Floor(x)将x向负无穷舍入取整Rem(x,a)同上

Round(x)将x就近取整

Sqrt(x)开方

Sin(x)正弦Asin(x)反正弦

Cos(x)余弦Acos(x)反余弦

Tan(x)正切Atan(x)反正切

Atan2(y,x)给定x和y,计算反正切

向量数组矩阵操作

Cumsum(v) 计算v中元素的累积和

Deal() 给变量分配返回的元胞数组型结果

Det(a) 计算矩阵行列式的值

Diag(a) 抽取aj矩阵的对角元素或以向量a为对角建立矩阵Eye() 生成单位阵

find

Fliplr() 左右翻转矩阵

Inv(a) 矩阵求逆

Length(a) 获取a的最大维数

Linspace(fr,t,n) 定义一个线性间隔的向量

Magic(c) 生成魔方矩阵

[v,in]=max(a) 查找a中最大元素的值和位置

Mean(a) 计算a中元素的平均值

Ones(n,m) 生成1矩阵

Prod(x) 计算x中所有元素的乘积

Rand(n,m) 产生0,1之前均匀分布的对应维数矩阵

Randn(n,m) 产生0,1之间正态分布的对应维数矩阵

Size(a) 得到数组a的维数大小

sparse 定义稀疏矩阵

[v,in]=sort(v) 对向量v进行排序

Sum(a) 计算a中元素之和

Zeros(n,m) 产生对应维数的0数组

Meshgrid(x,y) 将向量x,y分别映射成二维数组

2-D绘图

bar 产生条状图

barh 产生水平条状图

contour 产生等高线图

hist 产生直方图

loglog 产生x,y轴均为对数尺度的图

pie 产生饼图

plot 产生x-y图

polar 产生极坐标图

semilogx 仅x轴为对数尺度产生x-y图

semilogy 近y轴为对数尺度产生x-y图

3-D绘图

Bar3 三维条状图

Barh3 水平三维条状图

gplot 按图论法则绘图

Mesh(x,y,z) 绘制曲面的网格图

Meshc(x,y,z) 绘制带有等高线的曲面网格图

Meshz(x,y,z) 绘制带有扩展垂直线的曲面网格图meshgrid(n,m) 产生三维绘图用的网格

peaks 产生采样矩阵用来要是绘图函数

Pie3 绘制三维饼状图

Plot3() 绘制三维曲线图

sphere 演示绘图的例程函数

surf 绘制曲面图

surfc 绘制带有等高线图的曲面图

waterfall 产生仅在x轴具有扩展垂直线的网格曲面图plotyy

图形外观指示符-- 虚线+ 加号< 朝左三角符

- 实线. 圆点* 星号> 朝右三角符

:点线O 圆圈S 方块符P 五星角符

-. 点划线X x符 D 菱形符H 六星角符

色图值,与colormap命令搭配使用hsv spring cool

autumn copper jet summer

bone flag pink white

colorcube hot prism winter

Cftool拟合工具箱的用法:

1.在Matlab 6.5以上的环境下,在左下方有一个"Start"按钮,如同Windows的开始菜单,点开它,在目录"Toolboxes"下有一个"Curve Fitting",点开"Curve Fitting Tool",出现数据拟合工具界面,基本上所有的数据拟合和回归分析都可以在这里进行。

下面给你简单介绍一下它的使用方法。

首先在Matlab的命令行输入两个向量,一个向量是你要的x坐标的各个数据,另外一个是你要的y坐标的各个数据。输入以后假定叫x向量与y向量,可以在workspace里面看见这两个向量,要确保这两个向量的元素数一致,如果不一致的话是不能在工具箱里面进行拟合的。例如在命令行里输入下列数据:

x=(0:0.02:0.98)';

y=sin(4*pi*x+rand(size(x)));

此时x-y之间的函数近似的为正弦关系,频率为2,但是存在一个误差项。

可以通过作图看出它们的大体分布:

plot(x,y,'*','markersize',2);

打开曲线拟合共工具界面,点击最左边的"Data..."按钮,出现一个Data对话框,在Data Sets 页面里,在X Data选项中选取x向量,Y Data选项中选取y向量,如果两个向量的元素数相同,那么Create data set按钮就激活了,此时点击它,生成一个数据组,显示在下方Data Sets 列表框中。关闭Data对话框。此时Curve Fitting Tool窗口中显示出这一数据组的散点分布图。

点击Fitting...按钮,出现Fitting对话框,Fitting对话框分为两部分,上面为Fit Editor,下面为Table of Fits,有时候窗口界面比较小,Fit Editor部分会被收起来,只要把Table of Fits上方的横条往下拉就可以看见Fit Editor。在Fit Editor里面点击New Fit按钮,此时其下方的各个选框被激活,在Data Set选框中选中刚才建立的x-y数据组,然后在Type of fit选框中选取拟合或回归类型,各个类型的拟合或回归相应的分别是:

Custom Equations 用户自定义函数

Expotential e指数函数

Fourier 傅立叶函数,含有三角函数

Gaussian 正态分布函数,高斯函数

Interpolant 插值函数,含有线性函数,移动平均等类型的拟合

Polynomial 多项式函数

Power 幂函数

Rational 有理函数(不太清楚,没有怎么用过)

Smooth Spline ??(光滑插值或者光滑拟合,不太清楚)

Sum of sin functions正弦函数类

Weibull 威布尔函数(没用过)

不好意思,没有学过数理统计,所以很多东西都是用了才知道,翻译也就不太准确。不过在Type of fit选框下方有一个列表框,基本上各个函数类里的函数都写成解析式列在下方以供选择,所以找合适的函数还是比较容易的。

在这个Type of fit选框中选择好合适的类型,并选好合适的函数形式。于是点击Apply按钮,就开始进行拟合或者回归了。此时在Curve Fitting Tool窗口上就会出现一个拟合的曲线。这就是所要的结果。

在上面的例子中,选择sum of sin functions中的第一个函数形式,点击Apply按钮,就可以看见拟合得到的正弦曲线。

在Fitting对话框中的Results文本框中显示有此次拟合的主要统计信息,主要有

General model of sin1:

....... (函数形式)

Coefficients (with 95% conffidence range) (95%致信区间内的拟合常数)

a1=... ( ... ...) (等号后面是平均值,括号里是范围)

....

Godness of fit: (统计结果)

SSE: ... (方差)

R-squared: ... (决定系数,不知道做什么的)

Adjusted R-squared: ... (校正后的决定系数,如何校正的不得而知)

RMSE: ... (标准差)

上面的例子中经过拟合得到的函数最后为

y=0.9354*sin(12.36x+6.886)

频率为1.98加减0.03,和原来设置的频率为2符合,相对误差为1.5%。

这是曲线拟合工具箱的一个最简单的使用方法,上面还有很多功能,写是写不完的,自己参照这个基本的思路,翻着英汉词典,看着帮助,然后一个按钮一个按钮的试吧。

另外要说的是,如果想把这个拟合的图像导出的话,在Curve Fitting Tool窗口的File菜单下选Print to Figure,此时弹出一个新的图像窗口,里面是你要导出的图像,在这个figure窗口的File菜单里再选Export,选择好合适的格式,一般是jpeg,选择好路径,点击OK就可以了。出来的图像可以在Word等编辑环境中使用,就不多说了。

要修改图像的性质,如数据点的大小、颜色等等的,只需要在对象上点右键,就差不多可以找到了。

一些总结:

(1)help 命令

可以查其用法

(2)“;”的用法

不加“;”显示结果

加“;”时不显示结果

(3)数列之间的运算要加"."

(4)在matlb中函数总是以离散数列形式给出的

(5)常数:

pi=圆周率;

j=i=虚单元;

ans=计算机结果的缺省变量名

(6)数列:a=[1 5 8 0 2]

矩阵:a=[1 5 8;0 8 4]

改变数列的某一个项的值:a(1)=11,则a=[11 5 8 0 2]//注意不是a(0)

一:matlb的序列的表示方法

1:枚举法

eg a=[0 1 2 3 4 5 6 7 8 9]

2:已知首相尾相,与等差

eg a=0:1:9

或者简写成a="0:9"(等差1可省略)

3:已知首相尾相,与序列总数

eg a=linspace(0,9,10)

应用:x轴可写为x=[0:n-1]

二:画图

1:画出离散图形:stem

eg stem(y) 注意,此时的x由系统自定。

stem(x,y) 注意,x与y数列的点数一定要相同。

2:画出连续图形:plot

eg plot(x,y)

3:把多个图放在一块:subplot(子图)

eg subplot(3,1,2)//一共三行一列,此图在第2个

eg subplot(3,2,5)//一共三行两列,此图在第5个

4:指定图形标题栏:title('')

eg title('频谱图') 注意,要加''

指定x(自变量)轴标注文字:xlabel('')

指定y(自变量)轴标注文字:ylabel('')

5:坐标轴的范围的刻画:axis[x1,x2,y1,y2]

以坐标纸方式显示:grid

应用:eg x=[0:9]; 定义x轴

y=sin(2*pi/30*x)./x; 定义y轴

subplot(3,1,1); 在适当位置处画出一个空白的图像

plot(x,y); 填充此图像

title('一个例子');为此图像加标识

6:把多个图形画于同一个坐标中

eg plot(t, y, t, y0, t, -y0)

plot(t, y, '-r', t, y0, ':b', t, -y0, ':b')//'-r'表示红色线;':b'表示虚蓝线

如果后续图形也要画在当前的同一图形窗内,并且希望二条线同时存在,可输入:hold on;hold off关闭。

7:不同的线的画法

具体的直角坐标图绘图格式:plot(x,y,'cm')

式中x为自变量,y为因变量,c为颜色标记,m为线型标记符

b 蓝色g 绿色r 红色

c 青色m 洋红y 黄色

k 黑色w 白色. 小黑点(线型)o 小圈号x 叉号

+ 十字号* 星号s 方形 d 菱形v 三角形

三角形(向上)< 三角形(向左)> 三角形(向右)p 五角星

h 六角星- 实连线:虚点连线-. 点划连线-- 双划连线

注意:先写subplot,再写plot,最后为title axis等

figure窗口不消失:grid on;

三:提取性质

1:提取出数列的长度:length(数列)

四:运算

数列之间的运算要加"."

1:四则运算:+ ;- ;* ;/ ;以及数列之间的运算:.+ ;.- ;.* ;./;

注意当分母为一个数列时,只能用./不能用/

取余运算:mod(a,b)

Eg1

mod(13,5)

ans =

Eg2

mod([1:5],3)

ans =

1 2 0 1 2

取整:

Fix(a)

2:三角函数:sin();cos();tan();cot();

3:幕运算:^以及数列之间的运算:.^

指数运算:exp()

应用:eg n="0:50";

x="-25:25";

W=(pi/12.5)*k; //w=(2*pi/25)*k

y=(exp(-j*pi/12.5)).^(n.*x);

eg x="-25:25";

w=(pi/12.5);

y="exp"(-j*w*x);//所得为一系列复数

注意有数列时则一定用.^不用^

eg:a=0:9;

b="a".^5;

c="5".^a;

(自己记:符号两边不对称的,一旦有一个数列,则用.) 4:复数相关

abs()复数大小(幅频特性)

angle()复角(相频特性)

real()实部

imag()虚部

5:累加

一维数组的话直接sum(b)

要叠加行或列用sum(b,1)或sum(b,2)

二维数组要叠加所有元素用sum(b(:))

五:语句

1:if——else语句

if 条件

运行语句1;

运行语句2;

运行语句n;

else//可以省略

运行语句1;

运行语句2;

运行语句n;

也可以

if

。。

else if

。。

else

。。

end

end

2:for循环语句

for 数列//多用0:n-1去执行n次;或应用length取长度

运行语句1;

运行语句2;

运行语句n;

End

3:while 逻辑

语句1;

语句2;

End

六:信号的产生

1:0矩阵的创立:zeros(m行,n列)//行是一的矩阵也就是一个序列

2:1矩阵的创立:ones(m行,n列)//行是一的矩阵也就是一个序列

应用:单位抽样序列:[1 zeros(1,n-1)] ====[1 0 0 0 0 0 0 0...](一共n个数字) 单位阶跃序列:ones(1,n)==[1 1 1 1 1 1 1 …….]

七:编写*.m文件,自定义的函数

过程:

书写方法:

定义为*.m文件。

多要利用循环,分支语句。

运行方法:

进入含有自定义函数的*.m文件。

在命令行里键入:m文件的名字,回车。

Eg:

clear all;

close all;

clc;

cd lib

书写方法:

和过程相似,但要有:function 返回值=函数名(参数1,参数2,参数3。。。。)

主意:可以不定义返回值,参数n。m文件名=函数名

局部变量:

全局变量:利用global命令

Eg:

global num;

num=1000;

运行方法:

与一般的函数一样,返回值,参数n在函数外部定义。

Eg: function re="text"(f,n)

w=2*pi*f;

t=0:n-1;

re=sin(w*t);

plot(re);

多值返回[ra,rb,rc,..]=………

或者在m编译器中debug>>run(调试程序)

matlab中inline函数

在matlab命令窗口、程序或函数中创建局部函数时,可用inline。优点是不必将其储存为一个单独文件。在运用中有几点限制:不能调用另一个inline函数,只能由一个matlab表达式组成,并且只能返回一个变量---显然不允许[u,v]这种形式。因而,任何要求逻辑运算或乘法运算以求得最终结果的场合,都不能应用inline。除了这些限制,在许多情况下使用该函数非常方便。

Inline函数的一般形式为:

FunctionName=inline(‘任何有效的matlab表达式’, ‘p1’,’p2’,….) ,其中‘p1’,’p2’,…是出现在表达式中的所有变量的名字。

如:(求解F(x)=x^2*cos(a*x)-b ,a,b是标量;x是向量)

在命令窗口输入:

Fofx=inline(‘x .^2*cos(a*x)-b’, ‘x’,’a’,’b’);

g= Fofx([pi/3 pi/3.5],4,1)

系统输出为:g=-1.5483 -1.7259

*****************************************************

f函数如何理解

f函数的最通常的应用是以下形式:

f('functionname',parameter),举个简单的例子:

比如要计算sin(2),当然可以直接用命令y=sin(2);利用f,还可以这样来做:

y=f('sin',2);另外这里的函数名字还可以是一个函数句柄,即h=@sin;

y=f(h,2);或者直接写成y=f(@sin,2);

Matlab函数句柄, 匿名函数

变量不仅可以用来表示数值(如: 1, 0.2, -5), 用来表示字符串(如: 't', 'casino'), 也可以用来表示函数哦. 当然, 你也看到了前面我们提到的函数都是一个一个的文件, 直接塞到一个变量里面似乎太大, 不过我们可以'提纲挈领', 抓住函数的handle(句柄), 就可以.

将函数句柄赋值给变量要用到@符号, 语法: 变量名=@函数名, 此处地函数名可以是当前Matlab中可以使用的任意函数例如: mysin=@sin, 此后mysin就和sin同样地使用, mysin(pi)和sin(pi)的含义相同.

匿名函数

这是函数句柄的一种高级用法, 这样产生的函数句柄变量不指向特定的函数, 而是一个函数表达式. 其语法:

变量名=@(输入参数列表)运算表达式

例如, 前面那个计算变量平方的函数可以简单地写为这个匿名函数:

mysqr1=@(x)x.*x

之后, 执行mysqr1(变量名), 即可计算该变量的平方, 注意, mysqr1属性是函数句柄变量, 而不是这个表达式; 还有要注意这个表达式不需要用单引号括起来.

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绘制,但代入矩阵:

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