《matlab基础知识总结.doc》由会员分享,可在线阅读,更多相关《matlab基础知识总结.doc(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1、linspace()函数linspace是Matlab中的一个指令,用于产生x1,x2之间的N点行矢量。其中x1、x2、N分别为起始值、终止值、元素个数。若缺省N,默认点数为100。在matlab的命令窗口下输入help linspace或者doc linspace可以获得该函数的帮助信息。例一: 在matlab的命令窗口输入:X=linspace(1,100) 将产生从1到100步长为1的数组。类似于在命令窗口中输入: X=1:1:100在MATLAB中为什么输linspace(10,50,6)的时候其步进是8,而输入linspace(10,50,8)时,其步进为5点多的一个小数lins
2、pace(x0,x1,n)其中n代表的是点的数目,即分成n-1等分。步长应当是(x1-x0)/(n-1)二、格式:n=norm(A,p) 功能:norm函数可计算几种不同类型的矩阵范数,根据p的不同可得到不同的范数 以下是Matlab中help norm 的解释 NORM Matrix or vector norm. For matrices. NORM(X) is the largest singular value of X, max(svd(X). NORM(X,2) is the same as NORM(X). NORM(X,1) is the 1-norm of X, the la
3、rgest column sum,= max(sum(abs(X).NORM(X,inf) is the infinity norm of X, the largest row sum,= max(sum(abs(X). NORM(X,fro) is the Frobenius norm, sqrt(sum(diag(X*X). NORM(X,P) is available for matrix X only if P is 1, 2, inf or fro.For vectors. NORM(V,P) = sum(abs(V).P)(1/P). NORM(V) = norm(V,2). NO
4、RM(V,inf) = max(abs(V). 1、如果A为矩阵 n=norm(A) 返回A的最大奇异值,即max(svd(A) n=norm(A,p) 根据p的不同,返回不同的值 p 返回值 1 返回A中最大一列和,即max(sum(abs(A) 2 返回A的最大奇异值,和n=norm(A)用法一样 inf 返回A中最大一行和,即max(sum(abs(A) fro A和A的积的对角线和的平方根,即sqrt(sum(diag(A*A)2、如果A为向量 norm(A,p) 返回向量A的p范数。即返回 sum(abs(A).p)(1/p),对任意 1p+. norm(A) 返回向量A的2范数,即
5、等价于norm(A,2)。 norm(A,inf) 返回max(abs(A) norm(A,-inf) 返回min(abs(A)3、对于实数矩阵A=A. 复数矩阵A转置 A.; A的共轭转置A4、randn(N,M)的功能是产生一个N行M列的服从高斯分布的矩阵(注:randn为matlab自带的产生高斯分布的库函数)。randn(N,M)的功能是产生一个N行M列的服从高斯分布的矩阵(注:randn为matlab自带的产生高斯分布的库函数)。randn(N,M)的功能是产生一个N行M列的服从高斯分布的矩阵(注:randn为matlab自带的产生高斯分布的库函数)。以下介绍利用Matlab产生均值
6、为0,方差为1的符合正态分布的高斯随机数。我们利用的函数为normrnd(a,b,c,d):产生均值为a、标准为b大小为cXd的随机矩阵,它有如下三种参数形式:Rnormrnd(,)Rnormrnd(,):生成服从正态分布(参数代表均值,参数代表标准差)的随机数。输入的向量或矩阵和必须形式相同,输出R也和它们形式相同。标量输入将被扩展成和其它输入具有相同维数的矩阵。Rnormrnd(,m)Rnorrmrnd(,m):生成服从正态分布(参数代表均值,参数代表标准差)的随机数矩阵,矩阵的形式由m定义。m是一个12向量,其中的两个元素分别代表返回值R中行与列的维数。Rnormrnd(,m,n)Rno
7、rmrnd(,m,n):生成mn形式的正态分布的随机数矩阵。其中为均值,为标准方差,m、n为矩阵大小;5、hist(A,10)将A中数据等分为十个区间,返回每个区间内数据的均值及数目。6、 y = conj(x): 返回复数z的幅角其中x是一个n维的数值数组。该调用将返回x中每个复数的共轭复数。Real(z): 返回复数z的实部Imag(z): 返回复数z的虚部Abs(z): 返回复数z的幅度Complex(a,b): 以a为实部,b为虚部创建复数7、二维用法:zeros(m,n)或zeros(n)功能:zeros(m,n)产生mn的零矩阵,zeros(n)产生nn的全0方阵。n维用法:zer
8、os(m,n,p,.) 或zeros(m n p .)或zeros(m,n,p.,classname)功能:返回一个mnp.的零矩阵。注意:m, n, p,.必须是非负整数,负整数将被当做0看待。当没有参数时classname时,产生的是标量零矩阵,有参数时产生指定类型的零矩阵,例如zeros(3,2,uint8)。8、利用Toeplitz 特性改善来波方向估计性能toeplitz-生成托普利兹矩阵【功能简介】生成托普利兹(Toeplitz)矩阵。矩阵中,除第一行与第一列外,其他所有元素都与左上角相邻位置的元素相等,即T(i,j)=T(i-1,j-1)。【语法格式】(1)T=toeplitz(
9、c,r)生成非对称托普利兹矩阵,将c作为第一列,r作为第一行,若c(1)与r(1)不相等,则使用c(1)作为矩阵的第一个元素,同时打印一条警告信息。(2)T=toeplitz(r)生成对称的托普利兹矩阵,将r作为第一行与第一列。9、awgn()函数:在某一信号中加入高斯白噪声 y = awgn(x,SNR) 在信号x中加入高斯白噪声。信噪比SNR以dB为单位。x的强度假定为0dBW。如果x是复数,就加入复噪声。 y = awgn(x,SNR,SIGPOWER) 如果SIGPOWER是数值,则其代表以dBW为单位的信号强度;如果SIGPOWER为measured,则函数将在加入噪声之前测定信号强
10、度。 y = awgn(x,SNR,SIGPOWER,STATE) 重置RANDN的状态。 y = awgn(,POWERTYPE) 指定SNR和SIGPOWER的单位。POWERTYPE可以是dB或linear。如果POWERTYPE是dB,那么SNR以dB为单位,而SIGPOWER以dBW为单位。如果POWERTYPE是linear,那么SNR作为比值来度量,而SIGPOWER以瓦特为单位。10、自相关函数xcorr()自相关函数是描述随机信号X(t)在任意两个不同时刻t1,t2的取值之间的相关程度.设原函数是f(t),则自相关函数定义为R(u)=f(t)*f(-t),其中*表示卷积.r=
11、xcorr(s,SCALEOPT)SCALEOPT有 biased - scales the raw cross-correlation by 1/M. unbiased - scales the raw correlation by 1/(M-abs(lags). coeff - normalizes the sequence so that the auto-correlations at zero lag are identically 1.0. none - no scaling (this is the default).11、协方差矩阵size:获取数组的行数和列数length:数
12、组长度(即行数或列数中的较大值)numel:元素总个数。s=size(A),当只有一个输出参数时,返回一个行向量,该行向量的第一个元素时数组的行数,第二个元素是数组的列数。r,c=size(A),当有两个输出参数时,size函数将数组的行数返回到第一个输出变量,将数组的列数返回到第二个输出变量。如果在size函数的输入参数中再添加一项,并用1或2为该项赋值,则size将返回数组的行数或列数。 其中r=size(A,1)该语句返回的时数组A的行数, c=size(A,2) 该语句返回的时数组A的列数。n=numel(A)该语句返回数组中元素的总个数。n=length(A):如果A为非空数组,返回
13、行数和列数两者之间数值较大的那一个值,即相当于执行了max(size(A);如果A为空数组,则返回0;如果A是一个向量则返回A的长度。n=max(size(A):若A为非空数组,返回A的最大维数;若A为空数组,返回A中最长的非0维数12、复数x=a+b j B)复数的绘图(1)直角坐标图plot函数(2)极坐标图Polar函数调用格式:polar(theta,rho)其中theta为极坐标极值,rho为极坐标矢径例:做出y=t+i*tsin(t) 的坐标图t=0:0.01:2*pi;y=t+i*t.*sin(t); %直角坐标表示r=abs(y);theta =angle(y); %极坐标表示
14、subplot(2,1,1);plot(y) ; %绘制直角坐标图title(直角坐标图);subplot(2,1,2);polar(theta,r) ; %绘制极坐标图title(极坐标图);13、fftshift()函数fftshift的作用是让正半轴部分和负半轴部分的图像分别关于各自的中心对称。因为直接用fft得出的数据与频率不是对应的,可以用fftshift纠正过来。Fft是一维傅里叶变换,也就是将时域信号转换为频域信号; fftshift是针对频域的,将FFT的DC分量移到频谱中心。14、stem(y):绘制离散序列图 Stem(x,y)Stem(,线端符号)Stem(,线型)Ste
15、m(,线端符号,线型)stem(y)和Stem(x,y)分别与plot(x),plot(x,y)的绘图规则相同,只是stem绘制的是离散序列图,序列线端为圆圈。15、hold on/hold offhold on是你在当前图的轴(坐标系)中画了一幅图,再画另一幅图时,原来的图还在,与新图共存都能看到。hold off是你在当前图的轴(坐标系)中画了一幅图,此时,状态是hold off,则再画另一幅图时,原来的图就看不到了,在轴上绘制的是新图,原图被替换了。matlab中怎样将同一函数在不同自变量下的曲线画到同一张图中?具体需要什么样的命令有三种方法:(1)用hold on和hold off,画
16、好第一幅图后,用hold on 语句就可以接着在该坐标系下画出其他的曲线图形,画完后再用hold off结束例如% 函数y=sin(x)x=linspace(0,pi,100);y=sin(x)plot(x,y,*k);hold onx=linspace(2*pi,4*pi,100)y=sin(x)plot(x,y,*k);(2)建一个m行n列的矩阵,每一行代表一条曲线,然后再用一般的画图方法,如plot()函数就可以了(3)可以直接将两条曲线直接写入plot函数的参数里,例如 x1=linspace(0,pi,100);x2=linspace(2*pi,4*pi,100)% 函数y=sin(
17、x)y1=sin(x1);y2=sin(x2);plot(x1,y1,*k,x2,y2,sr);16、矩阵拆分A(:,j) 表示取A矩阵的第j列全部元素A(i,:) 表示取A矩阵的第i行全部元素A(i:i+m,:) 表示取A矩阵的第ii+m行全部元素A(:,k:k+m) 表示取A矩阵的第kk+m列全部元素17、axis(xmin .xmax, ymin ,ymax) 分别表示x轴和y轴的坐标的刻度q title 给图形加标题q xlabel 给x轴加标注q ylabel 给y轴加标注q text 在图形指定位置加标注q gtext 将标注加到图形任意位置q grid on/off 打开、关闭坐
18、标网格线q legend 添加图例q axis 控制坐标轴的刻度q axis equal纵、横坐标采用等刻度q axis square产生正方形坐标系q axis on /off 显示/取消坐标轴q box on 加坐标边框4.1.3 自适应采样绘图函数n plot将外部的离散数据转化为图形。数据点越多绘制的曲线越精确,越能反映数据的规律。n fplot构建所需要绘制函数的数据,同时也可以绘图,精确程度由误差决定。 n x,y = fplot(fun,lims,tol,s) %返回函数fun在x区间lims = xmin xmax的绘图点值。fun用字符串表示。4.1.4 隐函数绘图函数q e
19、zplot(fun) %绘制默认范围内的图形q ezplot(fun,min,max) %绘制指定范围内的图形q ezplot(fun,xmin,xmax,ymin,ymax) %绘制函数f(x,y)指定范围内的图形q ezplot(funx,funy) %绘制默认范围的参数方程组x=x(t),y=y(t)的图形q ezplot(funx,funy,tmin,tmax) %绘制指定范围的参数方程组x=x(t),y=y(t)的图形默认范围是-2到2间的图形Fun用字符串表示4.2.1 三维图绘制基本函数n plot3 %基本的三维图形指令。n plot3(x,y,z) %x,y,z是长度相同的向
20、量或维数相同的矩阵n 二维图形的所有基本特性对三维图形全都适用。n plot3(x,y,z,s) n plot3(x1,y1,z1,s1, x2,y2,z2,s2, ) %多线条绘图n grid on/off %绘制三维网格n text(x,y,z,string)%三维图形标注n 子图和多窗口。例如:t=0:0.1:8*pi;x=sin(t);y=cos(t);z=t.3;subplot(1,2,1);plot3(x,y,z);4.2.2 三维网格图绘制n 三维网格图函数mesh可绘出在某一区间内的完整曲面n mesh(z) %z为nm的矩阵,x与y坐标为元素的下标。n mesh(x,y,z)
21、 %x,y,z分别为三维空间的坐标位置。n 三维网格图绘制步骤n 生成坐标: X,Y=meshgrid(x,y)n 参数x和y为向量n 表达式点运算:Z=X.2+Y.2n X,Y是nm的矩阵,维数由向量尺寸决定n 默认37.5,俯角30实例:x=-5:0.5:5;y=x;x,y=meshgrid(x,y); %生成坐标z=x.2+y.2; %点运算mesh(x,y,z); 4.2.3 三维曲面图绘制n 曲面绘制函数surf绘制着色的三维曲面n surf(X,Y,Z) %X,Y,Z为图形坐标向量注:网格图线条有颜色,空挡是白色;曲面图线条是黑色,空挡有颜色。n 带等高线的曲面图绘制函数surfc
22、(X,Y,Z)n 被光照射带阴影的曲面图surfl(X,Y,Z) 比较 :(1)x=-5:0.5:5;y=x; x,y=meshgrid(x,y);z=x.2+y.2; subplot(2,1,1);mesh(x,y,z); subplot(2,1,2); surf(x,y,z)(2)x,y,z=peaks(30); subplot(2,1,1);surfc(x,y,z);subplot(2,1,2);surfl(x,y,z);4.2.4 图形修饰命令n colormap(MAP) %色图设定函数n colorbar() %标注Z图例n shading faceted / flat / int
23、erp %网格修饰n hidden on/off %透视与消隐(网格图)n view(az,el) % 视角修饰,az 为方位角,el 为俯视角,缺省值:az=-37.5;el=30n waterfall / meshz %水线修饰n contour(Z,n) / contour3(Z,n) %绘制n条二维 /三维等高线;其中colormap(MAP)n hsv %饱和值色图n gray %线性灰度色图n hot %暖色色图n cool %冷色色图n bone %兰色调灰色图n copper %铜色色图n pink %粉红色图n prism %光谱色图n jet %饱和值色图IIn flag
24、%红,白,蓝交替色图5.1.1 一维插值n 单变量函数f(x)的数值插值问题称为一维插值。n 函数interp1q Y1=interp1(X,Y,X1,method) %计算函数在X1处的值Y1,X、Y和X1均为向量q methodn linear:线性插值(默认)n nearest:最近点插值。n cubic:3次多项式插值。n spline:3次样条插值。5.1.2 二维插值n 对双变量函数z=f(x,y)进行插值n 函数interp2q Z1 = interp2( X,Y,Z,X1,Y1,method )n 其中X、Y是两个向量(矩阵),分别描述两个参数的采样点,Z是与参数采样点对应的函
25、数值。n X1、Y1描述欲插值的点。n Z1是根据相应的插值方法得到的插值结果。q method的取值与一维插值函数相同。5.2 曲线拟合n 目的:用一个较简单的函数去逼近一个复杂的或未知的函数。n MATLAB曲线拟合的最优标准是采用常见的最小二乘原理,所构造的函数是一个次数小于插值节点个数的多项式。n 曲线拟合的最小二乘原理,就是使上述拟合多项式在各节点处的偏差g(xi)-yi的平方和达到最小。n 命令格式:g,t=polyfit(X,Y,n),结果g为多项式系数向量,t为误差向量,n为多项式次数。5.3.1 最大值和最小值n max(A):q A是向量,则返回向量A的最大值。q A中包含复数元素,则按模取最大值。q A是矩阵,则返回一个行向量(每一列的最大值)。n Y,U=max(A) %A是向量,则返回向量A的最大值存入Y,最大值的序号存入U。如果A中包含复数元素,则按模取最大值。如果A是矩阵,则Y向量记录A的每列的最大值,U向量记录每列最大值的行号。n max(A, ,dim) %仅用于矩阵。dim取1或2:取1时,该函数和max(A)完全相同;取2时,返回一个列向量,数据对应每行的最大值。
限制150内