2022年matlab基础知识总结 .pdf
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点多的一个小数linspace(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 largest 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). NORM(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 范数,即等精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 1 页,共 10 页 - - - - - - - - - - 价于 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 产生均值为 0,方差为 1 的符合正态分布的高斯随机数。我们利用的函数为normrnd(a,b,c,d):产生均值为 a、标准为 b 大小为 cXd 的随机矩阵,它有如下三种参数形式: Rnormrnd(,) Rnormrnd(,):生成服从正态分布( 参数代表均值, 参数代表标准差)的随机数。输入的向量或矩阵和必须形式相同,输出R 也和它们形式相同。标量输入将被扩展成和其它输入具有相同维数的矩阵。 Rnormrnd(,m) Rnorrmrnd(,m):生成服从正态分布(参数代表均值, 参数代表标准差)的随机数矩阵,矩阵的形式由m 定义。m 是一个 12 向量,其中的两个元素分别代表返回值R 中行与列的维数。Rnormrnd(,m,n) Rnormrnd(,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) 产生 m n 的零矩阵,zeros(n) 产生 n n 的全 0 方阵。n 维用法 :zeros(m,n,p,.) 或 zeros(m n p .) 或 zeros(m,n,p.,classname )功能:返回一个 m n p .的零矩阵。注意: m, n, p,. 必须是非负整数,负整数将被当做 0 看待。当没有参数时classname 时,产生的是标量零矩阵,有参数时产生指定类型的零矩阵,例如zeros(3,2,uint8) 。8、利用 Toeplitz 特性改善来波方向估计性能toeplitz-生成托普利兹矩阵【功能简介】生成托普利兹(Toeplitz )矩阵。矩阵中,除第一行与第一列外,其他所有元素都与左上角相邻位置的元素相等,即T(i,j)=T(i-1,j-1)。【语法格式】(1)T=toeplitz(c,r) 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 2 页,共 10 页 - - - - - - - - - - 生成非对称托普利兹矩阵,将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 ,则函数将在加入噪声之前测定信号强度。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=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 :数组长度(即行数或列数中的较大值 )numel :元素总个数。s=size(A), 当只有一个输出参数时,返回一个行向量,该行向量的第一个元素时数组的行数,第二个元素是数组的列数。r,c=size(A), 当有两个输出参数时, size 函数将数组的行数返回到第一个输出变量,将数组的列数返回到第二个输出变量。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 3 页,共 10 页 - - - - - - - - - - 如果在 size 函数的输入参数中再添加一项,并用1 或 2 为该项赋值,则 size 将返回数组的行数或列数。其中 r=size(A,1) 该语句返回的时数组A 的行数,c=size(A,2) 该语句返回的时数组A 的列数。n=numel(A) 该语句返回数组中元素的总个数。n=length(A) :如果 A 为非空数组,返回行数和列数两者之间数值较大的那一个值,即相当于执行了 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); %极坐标表示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(, 线型 ) 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 4 页,共 10 页 - - - - - - - - - - Stem(, 线端符号 , 线型 ) stem(y)和 Stem(x,y)分别与 plot(x),plot(x,y) 的绘图规则相同,只是stem绘制的是离散序列图,序列线端为圆圈。15、hold on/hold off hold on 是你在当前图的轴(坐标系)中画了一幅图,再画另一幅图时,原来的图还在,与新图共存都能看到。hold off 是你在当前图的轴(坐标系)中画了一幅图,此时,状态是hold off,则再画另一幅图时,原来的图就看不到了,在轴上绘制的是新图,原图被替换了。matlab 中怎样将同一函数在不同自变量下的曲线画到同一张图中?具体需要什么样的命令有三种方法:(1)用 hold on 和 hold off ,画好第一幅图后,用hold on 语句就可以接着在该坐标系下画出其他的曲线图形,画完后再用hold off结束例如% 函数 y=sin(x) x=linspace(0,pi,100); y=sin(x) plot(x,y,*k); hold on x=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(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 轴的坐标的刻度title 给图形加 标题xlabel 给 x 轴加标注精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 5 页,共 10 页 - - - - - - - - - - ylabel 给 y 轴加标注text 在图形 指定位置加标注gtext 将标注加到图形 任意位置grid on/off 打开、关闭坐标 网格线legend 添加图例axis 控制坐标轴的 刻度axis equal 纵、横坐标采用等刻度axis square产生正方形坐标系axis on /off 显示 /取消坐标轴box on 加坐标边框4.1.3 自适应采样绘图函数plot 将外部的离散数据转化为图形。数据点 越多绘制的曲线越精确,越能反映数据的规律。fplot 构建所需要绘制 函数的数据,同时也可以绘图,精确程度由误差决定。x,y = fplot( fun,lims,tol, s) %返回函数 fun 在 x 区间 lims = xmin xmax 的绘图点值。fun 用字符串表示。4.1.4 隐函数绘图函数ezplot(fun) %绘制默认范围内的图形ezplot(fun,min,max) %绘制指定范围内的图形ezplot(fun,xmin,xmax,ymin,ymax) %绘制函数 f(x,y)指定范围内的图形ezplot(funx,funy) %绘制默认范围的参数方程组x=x(t),y=y(t) 的图形ezplot(funx,funy ,tmin,tmax) %绘制指定范围的参数方程组x=x(t),y=y(t) 的图形默认范围是 -2到 2间的图形Fun 用字符串表示4.2.1 三维图绘制基本函数plot3 %基本的三维图形指令。plot3(x,y,z) %x,y,z 是长度相同 的向量或维数相同 的矩阵二维图形的所有基本特性对三维图形全都适用。plot3(x,y,z,s) plot3(x1,y1,z1, s1 , x2,y2,z2, s2 , ) %多线条绘图grid on/off %绘制三维网格text(x,y,z, string )%三维图形标注子图和多窗口。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 6 页,共 10 页 - - - - - - - - - - 例如: 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 三维网格图绘制三维网格图函数 mesh可绘出在某一区间内的 完整曲面mesh(z) %z 为 nm 的矩阵 ,x 与 y 坐标为元素的 下标。mesh(x,y,z) %x,y,z分别为三维空间的 坐标位置 。三维网格图绘制步骤生成坐标 : X,Y =meshgrid(x,y) 参数 x 和 y 为向量表达式 点运算 :Z=X.2+Y.2 X,Y 是 nm 的矩阵,维数由向量尺寸决定默认 37.5o ,俯角 30o实例: x=-5:0.5:5;y=x; x,y=meshgrid(x,y); %生成坐标z=x.2+y.2; %点运算mesh(x,y,z); 4.2.3 三维曲面图绘制曲面绘制函数 surf 绘制着色的三维曲面surf(X,Y,Z) %X,Y,Z 为图形坐标向量注:网格图 线条有颜色,空挡是白色;曲面图线条是黑色,空挡有颜色。带等高线的曲面图绘制函数surfc(X,Y,Z) 被光照射带阴影的曲面图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); -505-505050-505-505050-4-2024-4-2024-10010-4-2024-4-2024-10010精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 7 页,共 10 页 - - - - - - - - - - surfl(x,y,z); 4.2.4 图形修饰命令colormap(MAP) %色图设定函数colorbar() %标注 Z 图例shading faceted / flat / interp%网格修饰hidden on /off%透视与消隐(网格图)view(az,el) % 视角修饰,az 为方位角,el 为俯视角,缺省值:az=-37.5;el=30 waterfall / meshz %水线修饰contour(Z,n) / contour3(Z,n) %绘制 n 条二维/三维等高线;其中 colormap(MAP ) hsv %饱和值色图gray %线性灰度色图hot %暖色色图cool %冷色色图bone %兰色调灰色图copper %铜色色图pink %粉红色图prism %光谱色图jet %饱和值色图 II flag %红,白,蓝交替色图5.1.1 一维插值单变量 函数 f(x)的数值插值问题称为 一维插值 。函数 interp1 Y1=interp1(X,Y,X1, method) % 计算函数在 X1 处的值 Y1,X、Y 和 X1 均为向量method linear:线性插值(默认)nearest :最近点插值。cubic:3 次多项式 插值。spline :3 次样条插值。5.1.2 二维插值对双变量 函数 z=f(x,y) 进行插值精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 8 页,共 10 页 - - - - - - - - - - 函数 interp2 Z1 = interp2( X,Y,Z,X1,Y1,method ) 其中 X、Y 是两个向量(矩阵),分别描述两个参数的采样点,Z 是与参数采样点对应的函数值。X1、Y1 描述欲插值的点。Z1 是根据相应的插值方法得到的插值结果。method的取值与一维插值函数相同。5.2 曲线拟合目的:用一个较简单的函数去 逼近一个复杂的或未知的函数。MATLAB曲线拟合的最优标准是采用常见的最小二乘原理,所构造的函数是一个次数小于插值节点个数的多项式 。曲线拟合的最小二乘原理,就是使上述拟合多项式在各节点处的偏差g(xi)-yi 的平方和 达到最小。命令格式:g,t=polyfit(X,Y,n),结果 g 为多项式系数向量, t 为误差向量,n 为多项式次数 。5.3.1 最大值和最小值max(A):A 是向量,则返回向量A 的最大值。A 中包含复数元素,则按模取最大值。A 是矩阵,则返回一个行向量(每一列的最大值 )。Y,U = max(A) %A 是向量,则返回向量 A 的最大值存入 Y,最大值的序号存入 U。如果 A 中包含复数元素,则按模取最大值。如果A 是矩阵,则 Y 向量记录 A 的每列的最大值, U 向量记录每列最大值的行号。max(A, ,dim) % 仅用于矩阵。 dim 取 1 或 2:取 1 时,该函数和 max(A)完全相同;取 2 时,返回一个列向量,数据对应每行的最大值。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 9 页,共 10 页 - - - - - - - - - - 文档编码:KDHSIBDSUFVBSUDHSIDHSIBF-SDSD587FCDCVDCJUH 欢迎下载 精美文档欢迎下载 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 10 页,共 10 页 - - - - - - - - - -