好文档 - 专业文书写作范文服务资料分享网站

Matlab入门教程 

天下 分享 时间: 加入收藏 我要投稿 点赞

当dim为1时,该函数等同于median(A);

当dim为2时,返回一个列向量,其第i个元素是A的第i行的中值。 例5-5 分别求向量x与y的平均值和中值。 5.1.4 累加和与累乘积

在MATLAB中,使用cumsum和cumprod函数能方便求 得向量和矩阵元素的累加和与累乘积向量,函数的调用格 式为:

cumsum(X):返回向量X累加和向量。 cumprod(X):返回向量X累乘积向量。

cumsum(A):返回一个矩阵,其第i列是A的第i列的累加和向量。 cumprod(A):返回一个矩阵,其第i列是A的第i列的累乘积向量。 cumsum(A,dim):

当dim为1时,该函数等同于cumsum(A);

当dim为2时,返回一个矩阵,其第i行是A的第i行的累加和向量cumprod(A,dim):

当dim为1时,该函数等同于cumprod(A);

当dim为2时,返回一个向量,其第i行是A的第i行的累乘积向量。 例5-5 求s矩阵的累加和。 5.1.5 标准方差与相关系数 1.求标准方差

std:计算数据序列的标准方差的函数。 对于向量X,std(X)返回一个标准方差。

对于矩阵A,std(A)返回一个行向量,它的各个元素便是矩阵A各列的标准方差。

std函数的一般调用格式为: Y=std(A,flag,dim) 其中dim取1或2

当dim=1时,求各列元素的标准方差; 当dim=2时,则求各行元素的标准方差。 flag取0或1,

当flag=0时,按σ1所列公式计算标准方差; 当flag=1时,按σ2所列公式计算标准方差。 缺省flag=0,dim=1。

例5-7 对二维矩阵x,从不同维方向求出其标准方差。 2.相关系数

MATLAB提供了corrcoef函数,可以求出数据的相关 系数矩阵。

corrcoef函数的调用格式为:

corrcoef(X):返回从矩阵X形成的一个相关系数矩阵。此相关系数矩阵的大小与矩阵X一样。它把矩阵X的每列作为一个变量,然后求它们的相关系数。 corrcoef(X,Y):在这里,X,Y是向量,它们与corrcoef([X,Y])的作用一样。 例5-8 生成满足正态分布的10000×5随机矩 阵,然后求各列元素的均值和标准方差,再求 这5列随机数据的相关系数矩阵。

命令如下:

X=randn(10000,5); M=mean(X) D=std(X)

R=corrcoef(X) 5.1.6 排序

MATLAB中对向量X是排序函数是sort(X),函数返回一个对X中的元素按升序排列的新向量。sort函数也可以对矩阵A的各列或各行重新排序, 其调用格式为:

[Y,I]=sort(A,dim)

其中dim指明对A的列还是行进行排序。 若dim=1,则按列排; 若dim=2,则按行排。

Y是排序后的矩阵,而I记录Y中的元素在A中位置。 5.2 离散傅立叶变换

离散傅立叶变换的实现一维离散傅立叶变换函数,其调用格式与功能为:

1、 fft(X):返回向量X的离散傅立叶变换。设X的长度(即元素个数)为N,若N为2的幂次,则为以2为基数的快速傅立叶变换,否则为运算速度很慢的非2幂次的算法。对于矩阵X,fft(X)应用于矩阵的每一列。

2、 fft(X,N):计算N点离散傅立叶变换。它限定向量的长度为N,若X的长度小于N,则不足部分补上零;若大于N,则删去超出N的那些元素。对于矩阵X,它同样应用于矩阵的每一列,只是限定了向量的长度为N。

3、 fft(X,[],dim)或fft(X,N,dim):这是对于矩阵而言的函数调用格式,前者的功能与FFT(X)基本相同,而后者则与FFT(X,N)基本相同。只是当参数dim=1时,该函数作用于X的每一列;当dim=2时,则作用于X的每一行。

值得一提的是,当已知给出的样本数N0不是2的幂次时,可以取一个N使它大于N0且是2的幂次,然后利用函数格式fft(X,N)或fft(X,N,dim)便可进行快速傅立叶变换。这样,计算速度将大大加快。

相应地,一维离散傅立叶逆变换函数是ifft。ifft(F)返回F的一维离散傅立叶逆变换;ifft(F,N)为N点逆变换;ifft(F,[],dim)或ifft(F,N,dim)则由N或dim确定逆变换的点数或操作方向。 例5-15 给定数学函数

x(t)=12sin(2π×10t+π/5)+5cos(2π×50t)

取N=128,试对t从0~1秒采样,用fft作快速傅立叶变换,绘制相应的振幅-频率图。 程序如下:

N=128; % 采样点数

T=1; % 采样时间终点

t=linspace(0,T,N); % 给出N个采样时间ti(I=1:N) x=12*sin(2*pi*10*t+pi/5)+5*cos(2*pi*50*t); % 求各采样点样本值x dt=t(2)-t(1); % 采样周期

f=1/dt; % 采样频率(Hz)

X=fft(x); % 计算x的快速傅立叶变换X F=X(1:N/2+1); % F(k)=X(k)(k=1:N/2+1)

f=f*(0:N/2)/N; % 使频率轴f从零开始 plot(f,abs(F),'-*') % 绘制振幅-频率图 xlabel('Frequency'); ylabel('|F(k)|') 第七章 绘图功能

作为一个功能强大的工具软件,Matlab具有很强的图形处理功能,提供了大量的二维、三维图形函数。由于系统采用面向对象的技术和丰富的矩阵运算,所以在图形处理方面即常方便又高效。 绘制图表的基础步骤: 1、准备图表的数据;

2、设置显示图表的范围;

3、绘图,并设置相应的参数; 4、设置坐标轴属性; 5、添加图形注释。 7.1 二维图形 一、 plot函数 函数格式:

plot(x): x下标为横坐标,元素数值为纵坐标; plot(x,y): (1)x、y同为向量;

(2)x为向量,y为某维数与x向量相同的矩阵。 函数功能:以向量x、y为轴,绘制曲线。

【例1】 在区间0≤X≤2?内,绘制正弦曲线Y=SIN(X),其程序为: x=0:pi/100:2*pi; y=sin(x); plot(x,y)

【例2】同时绘制正、余弦两条曲线Y1=SIN(X)和Y2=COS(X),其程序为: x=0:pi/100:2*pi; y1=sin(x); y2=cos(x);

plot(x,y1,x,y2)

plot函数还可以为plot(x,y1,x,y2,x,y3,…)形式,其功能是以公共向量x为X轴,分别以y1,y2,y3,…为Y轴,在同一幅图内绘制出多条曲线。 (一)线型与颜色 格式:plot(x,y1,’cs’,...)

其中c表示颜色, s表示线型。

【例3】 用不同线型和颜色重新绘制例7.2图形,其程序为: x=0:pi/100:2*pi; y1=sin(x); y2=cos(x);

plot(x,y1,'go',x,y2,'b-.')

其中参数'go'和'b-.'表示图形的颜色和线型。g表示绿色,o表示图形线型为圆圈;b表示蓝色,-.表示图形线型为点划线。 (二)图形标记

在绘制图形的同时,可以对图形加上一些说明,如图形名称、图形某一部分的

含义、坐标说明等,将这些操作称为添加图形标记。 title(‘加图形标题'); xlabel('加X轴标记'); ylabel('加Y轴标记'); text(X,Y,'添加文本'); (三)设定坐标轴

用户若对坐标系统不满意,可利用axis命令对其重新设定。 axis([xmin xmax ymin ymax]) 设定最大和最小值 axis (’auto’) 将坐标系统返回到自动缺省状态 axis (’square’) 将当前图形设置为方形 axis (’equal’) 两个坐标因子设成相等 axis (’off’) 关闭坐标系统 axis (’on’) 显示坐标系统

【例4】 在坐标范围0≤X≤2π,-2≤Y≤2内重新绘制正弦曲线,其程序为: x=linspace(0,2*pi,60); y=sin(x); plot(x,y);

axis ([0 2*pi -2 2]);设定坐标轴范围 (四)加图例

给图形加图例命令为legend。该命令把图例放置在图形空白处,用户还可以通过鼠标移动图例,将其放到希望的位置。 格式:legend('图例说明','图例说明');

【例5】 为正弦、余弦曲线增加图例,其程序为: x=0:pi/100:2*pi; y1=sin(x); y2=cos(x);

plot(x,y1,x,y2, '--'); legend('sin(x)','cos(x)'); 二、 subplot函数

(一)subplot(m,n,p)

该命令将当前图形窗口分成m×n个绘图区,即每行n个,共m行,区号按行优先编号,且选定第p个区为当前活动区。

【例6】 在一个图形窗口中同时绘制正弦、余弦、正切、余切曲线,程序为: x=linspace(0,2*pi,60); y=sin(x); z=cos(x);

t=sin(x)./(cos(x)+eps); eps为系统内部常数 ct=cos(x)./(sin(x)+eps);

subplot(2,2,1); 分成2×2区域且指定1号为活动区

(二)多图形窗口

需要建立多个图形窗口,绘制并保持每一个窗口的图形,可以使用figure命令。 每执行一次figure命令,就创建一个新的图形窗口,该窗口自动为活动窗口,若需要还可以返回该窗口的识别号码,称该号码为句柄。句柄显示在图形窗口的标题栏中,即图形窗口标题。用户可通过句柄激活或关闭某图形窗口,而axis、xlabel、title等许多命令也只对活动窗口有效。 重新绘制上例7个图形,程序变动后如下: x=linspace(0,2*pi,60); y=sin(x); z=cos(x);

t=sin(x)./(cos(x)+eps); ct=cos(x)./(sin(x)+eps);

H1=figure; 创建新窗口并返回句柄到变量H1 plot(x,y); 绘制图形并设置有关属性 title('sin(x)'); axis ([0 2*pi -1 1]);

H2=figure; 创建第二个窗口并返回句柄到变量H2 plot(x,z); 绘制图形并设置有关属性 title('cos(x)');

axis ([0 2*pi -1 1]); H3=figure; 同上 plot(x,t);

title('tangent(x)'); axis ([0 2*pi -70 70]); H7=figure; 同上 plot(x,ct);

title('cotangent(x)'); axis ([0 2*pi -70 70]); (三)hold命令

若在已存在图形窗口中用plot命令继续添加新的图形内容,可使用图形保持命令hold。发出命令hold on后,再执行plot命令,在保持原有图形或曲线的基础上,添加新绘制的图形。 阅读如下程序:

x=linspace(0,2*pi,60);

Matlab入门教程 

当dim为1时,该函数等同于median(A);当dim为2时,返回一个列向量,其第i个元素是A的第i行的中值。例5-5分别求向量x与y的平均值和中值。5.1.4累加和与累乘积在MATLAB中,使用cumsum和cumprod函数能方便求得向量和矩阵元素的累加和与累乘积向量,函数的调用格式为:cumsum(X):返回向量X累加和
推荐度:
点击下载文档文档为doc格式
14nft9stdx5gf8x599lp
领取福利

微信扫码领取福利

微信扫码分享