Matlab datafun 函数
更新时间:2024-04-14 17:57:01 阅读量: 综合文库 文档下载
- matlab安装教程推荐度:
- 相关推荐
版本:matlab 2010a
Matlab datafun函数的相关用法
目录:
1.conv2............................................................................................ 2 2.conv.............................................................................................. 3 3.convn ........................................................................................... 4 4.corrcoef ....................................................................................... 4 5. cov ............................................................................................... 5 6. cumprod ..................................................................................... 6 7. cumsu ......................................................................................... 7 8. deconv ........................................................................................ 7 9. detrend ....................................................................................... 8 10. diff............................................................................................. 9 11. fft2 ............................................................................................. 9 12. fft............................................................................................. 11 13.fftshift ...................................................................................... 12 14. filter2 ...................................................................................... 12 15. filter ........................................................................................ 13 16. hist .......................................................................................... 13 17. histc......................................................................................... 14 18. ifft2 ......................................................................................... 16 19. issorted ................................................................................... 17 20. max ......................................................................................... 19 21. mean ....................................................................................... 20 22. median .................................................................................... 20 23. min .......................................................................................... 21 24. mode ....................................................................................... 22 25. prod ........................................................................................ 23 26. sort .......................................................................................... 24 27. sortrows .................................................................................. 26 28. std ........................................................................................... 27 29. sum ......................................................................................... 28 30. var ........................................................................................... 30
1.conv2
功能简介
进行二维卷积操作 使用方法
C=conv2(A,B)
C=conv2(Hcol,Hrow,A) C=conv2(...,'shape')
说明:对于 C=conv2(A,B) ,conv2 的算矩阵 A 和 B 的卷积,若 [Ma,Na]=size(A), [Mb,Nb]=size(B), 则 size(C)=[Ma+Mb-1,Na+Nb-1]; C=conv2(Hcol,Hrow,A) 中,矩阵 A 分别与 Hcol 向量在列方向和 Hrow 向量在行方向上进行卷积;C=conv2(...,'shape') 用来指定 conv2 返回二维卷积结果部分,参数 shape 可取值如下:
》full 为缺省值,返回二维卷积的全部结果;
》same 返回二维卷积结果中与 A 大小相同的中间部分;
valid 返回在卷积过程中,未使用边缘补 0 部分进行计算的卷积结果部分,当 size(A)>size(B) 时,size(C)=[Ma-Mb+1,Na-Nb+1]。 应用举例A=magic(5) A=
17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9
B=[1 2 1;0 2 0;3 1 3] B=
1 2 1 0 2 0 3 1 3
C=conv2(A,B) C=
17 58 66 34 32 38 15 23 85 88 35 67 76 16
55 149 117 163 159 135 67 79 78 160 161 187 129 51 23 82 153 199 205 108 75 30 68 135 168 91 84 9 33 65 126 85 104 15 27 相关函数 filter2
2.conv
函数功能
计算多项式的卷积和乘积 使用方法
w = conv(u,v)
计算向量u和v的卷积。在代数上,卷积是和多项式乘积相同的操作,该多项式的系数是向量u和v的元素。 C = conv(...,'shape')
用指定的参数shape返回卷积的一部分。 full 返回全部卷积(默认)。
same 返回和A大小相同的卷积中心部分。
valid 仅仅返回没有零填充边的那部分卷积,用此选项,max(length(a)-max(0,length(b)-1),0). 应用举例 例1
clear all; close all; clc;
%程序开始
P1=[3 2 0 0 1 7 10]; P2=[0 0 0 4 -2 1 1]; P=P1+P2 poly2sym(P) P=P1-P2 poly2sym(P) P=conv(P1,P2) poly2sym(P) P2=[4 -2 1 1]; P=deconv(P1,P2) poly2sym(P)
例2 求解乘积多项式展开之后各次项的系数: (x^2+x+1)*(x^2+2x+1) 输入命令,
>> p1=[1 1 1]; >> p2=[1 2 1]; >> p3=conv(p1,p2) p3 =
1 3 4 3 1
p3即为展开后依次数从高到低各项系数,展开式为: x^4+3x^3+4x^2+3x+1 相关函数
conv2,convn,deconv,filter
等于length(c)
3.convn
函数功能
进行n维卷积操作。 使用方法
C = convn(A,B)
计算数组A和B的N维卷积,卷积结果C的维数为size(A)+size(B)-1。 C = convn(A,B,'shape')
用指定的参数shape返回n维卷积的一部分。 full 返回全部n维卷积(默认)。
same 返回和A大小相同的卷积中心部分。
valid 仅仅返回没有零填充边的那部分卷积,用此选项,length(c) 等于max(size(a)-size(b)+1,0). 相关函数 conv, conv2
4.corrcoef
函数功能
计算相关系数 使用方法
R = corrcoef(X)
返回相关系数矩阵R,对行是观测值、列是变量的矩阵X计算相关系数得到相关系数矩阵R。
阵R=corrcoef(X)与协方差矩阵C=cov(X)有以下关系: 公式R = corrcoef(x,y)
如果x和y都是列向量,那么其功能和corrcoef([x y])是相同的。
如果x和y不是列向量,corrcoef函数转化他们为列向量,例如,在这种情况下R=corrcoef(x,y)是等价于R=corrcoef([x(:) y(:)])。 book.iLoveMatlab.cn [R,P]=corrcoef(...)
返回R,P,含有p值的矩阵是为了测试不相关性,每个p值是相关性的概率值,真正的相关性,p值应该为0。
如果p(i,j)很小的情况下,一般设置小于0.05,我们也认为相关系数R(i,j)也是有意义的。 [R,P,RLO,RUP]=corrcoef(...)
返回矩阵RLO 和RUP,它们是和R有相同的大小,对每个系数包含一个在95%置信区间的上下界。
[...]=corrcoef(...,'param1',val1,'param2',val2,...) 指定其他参数和它们的值,有效的参数如下:
'alpha' 是一个0到1之间的数,指定了100*(1 - alpha)%的置信水平,默认是0.05 相对于95%的置信区间。
'rows' 'all' (默认)作用于所有行,'complete'作用于没有非数(NaN)的行,'pairwise' 是计算R(i,j)用列i或者j中不是非数的值。 应用举例
生成随机数据其中第4列和其他列相关。
x = randn(30,4); % Uncorrelated data
x(:,4) = sum(x,2); % Introduce correlation.
[r,p] = corrcoef(x) % Compute sample correlation and p-values. [i,j] = find(p<0.05); % Find significant correlations. [i,j] % Display their (row,col) indices. r =
1.0000 -0.3566 0.1929 0.3457 -0.3566 1.0000 -0.1429 0.4461 0.1929 -0.1429 1.0000 0.5183 0.3457 0.4461 0.5183 1.0000 p =
1.0000 0.0531 0.3072 0.0613 0.0531 1.0000 0.4511 0.0135 0.3072 0.4511 1.0000 0.0033 0.0613 0.0135 0.0033 1.0000 ans = 4 2 4 3 2 4 3 4
相关函数
cov, mean, median, std, var
5. cov
函数功能
返回协方差矩阵 使用方法 cov(x)
如果x是一个向量,cov(x)返回x中元素的方差。
如果x是一个矩阵,并且是各行为观测值、各列为变量的矩阵,cov(x)计算x的协方差。diag(cov(X))是包含每列的方差的向量,sqrt(diag(cov(X)))是包含标准差的向量。当X和Y是大小相同的矩阵时,cov(X,Y)等价于cov([X(:) Y(:)])。
cov(x) 或 cov(x,y)
用N-1规范化如果N>1,其中N是观测值的个数。如果观测值属于正态分布,那么cov(x)可以达到协方差最好的无偏估计。如果N=1用N去规范化。 cov(x,1)或 cov(x,y,1) 《Simulink与信号处理》
用N来规范化,cov(X,Y,0)和cov(X,Y)是功能相同的,cov(X,0)和cov(X)是功能相同的。 备注
cov在计算结果前对每一列删除平均值。
协方差函数定义为:
其中E是数学期望并且有
应用举例
考虑A = [-1 1 2 ; -2 3 1 ; 4 0 3],对A每一列求方差: v = diag(cov(A))' v =
10.3333 2.3333 1.0000 比较v和协方差C: C=cov(A) C =
10.3333 -4.1667 3.0000 4.1667 2.3333 -1.5000 3.0000 -1.5000 1.0000
对角元素C(i,i)代表A中每一列的方差,非对角元素代表列i和列j的协方差。 相关函数
corrcoef, mean, median, std,var
6. cumprod
功能简介 累积乘积 使用方法
B = cumprod(A)
返回数组中的一维维度的累积乘积。
如果A是一个向量,cumprod(A) 返回一个向量包含A元素的累积乘积
如果A是一个矩阵,cumprod(A) 返回一个矩阵为包含相同的大小每列A的累积乘积。
如果A是一个多维数组,cumprod(A) 第一个 nonsingleton 维度的操作。 B = cumprod(A,dim)
returns the cumulative product of the elements along the dimension of A specified by scalar dim. For example, cumprod(A,1) increments the column index, thus working along the columns of A. Thus, cumprod(A,1) and cumprod(A) will return the same thing. To increment the row index, use cumprod(A,2). 应用举例
cumprod(1:5) ans =
1 2 6 24 120 www.iLoveMatlab.cn A = [1 2 3; 4 5 6]; cumprod(A,1) ans = 1 2 3 4 10 18
cumprod(A,2)
ans =
1 2 6 Ma 4 20 120 相关函数
cumsum, prod, sum
7. cumsu
功能简介 累积求和 使用方法
B = cumsum(A)
返回沿着不同维的累积求和。
如果A是一个向量,cumsum(A)返回一个向量包含A中元素的累积和。
如果A是一个矩阵,cumsum(A)返回一个和A相同大小的矩阵,其包含A中每一列元素的累积和。
如果A是一个多维数组,cumsum(A)对第一个非奇异维进行计算。 B = cumsum(A,dim)
沿着指定的维返回元素的累积和。例如,cumsum(A,1)沿着列方向计算;cumsum(A)沿着行方向计算。 应用举例
注明:该例子来自Mathworks公司英文帮助文件。 例一:计算向量的累积和 cumsum(1:5) ans =
[1 3 6 10 15]
例二:计算矩阵的累积和 已知:A = [1 2 3; 4 5 6]; cumsum(A,1) % 沿列方向计算 ans = 1 2 3 5 7 9
cumsum(A,2) % 沿行方向计算 ans = 1 3 6 4 9 15 相关函数
cumprod, prod, sum
8. deconv
函数功能
计算多项式的反卷积和除法 使用方法
[q,r] = deconv(v,u)
用多项式除法计算向量v和向量u的反卷积,把商在向量q中并返回,余数在向量r中有v=conv(u,q)+r。 如果向量u和v是多项式系数,则对它们进行卷积等价于两个多项式相乘,并且反卷积是等价于项式除法。v除以u的结果就是商q和余数r。 应用举例 若:
u = [1 2 3 4] v = [10 20 30] 卷积为:
c = conv(u,v) c =
10 40 100 160 170 120 除以u的反卷积: [q,r] = deconv(c,u) q =
10 20 30 r =
0 0 0 0 0 0
得到的商等于v和余数r。 相关函数
conv,residue
9. detrend
目录
函数功能
对数据去除趋势文论坛 使用说明
y = detrend(x)
对x进行线性拟合,然后去除线性趋势 y = detrend(x,'constant') 去掉常数趋势
y = detrend(x,'linear',bp)
对数据进行分段线性趋势去除,bp是分段点 应用举例
load predict_ret_data.mat % load data
sdata(any(isnan(sdata),2),:) = [] % eliminate nan type plot( sdata,'+')% draw the originaldata
detrend_sdata=detrend(sdata);% detrend_sdata denotes the detrended data plot(detrend_sdata,'-')
原始数据和去趋势之后的数据
相关函数
polyfit,regress,predict 高级使用 相关视频
10. diff
功能简介
对函数求导。文论坛 使用方法
diff(函数) ,求函数的一阶导数;
diff(函数, n) ,求函数的n阶导数(n是具体整数); diff(函数,变量名),求对变量的偏导数;
diff(函数, 变量名,n) ,求对变量的n阶偏导数;文论坛 应用举例 syms x
diff(x^sin(x)) ans=
x^sin(s)*(cos(s)*log(x)+sin(x)/x) 相关视频
11. fft2
目录
功能简介
二维离散傅立叶变换。 使用方法
1.Y = fft2(X)
利用快速傅立叶变换(FFT)算法进行计算,返回X的二维离散傅立叶变换(DFT)。Y和X的存储空间相同。 2.Y = fft2(X,m,n)
去零或加零,将数组X扩展为M*N维数组,然后做离散傅立叶变换,结果也是
M*N维的数组。 【算法】
fft2(x)可以按如下方法简单计算:fft(fft(X).').'。首先计算每列X的一维DFT,然后计算上述结果的每行的DFT。计算时间取决于变换的长度。用户可以使用fftw来提高fft2的运算速度,fftw可以控制MATLAB软件如何优化用于计算特定大小和维数的FFT的算法。 【支持的数据类型】
fft2函数支持dougle和single数据类型。如果使用Y=fft2(X,...)格式来调用fft2函数,则其输出Y的数据类型与输入X的数据类型相同。 应用举例
Load imdemos saturn2 imshow(saturn2)
1
B=fftshift(fft2(saturn2));
imshow(log(abs(B)),[]),colormap(jet(64)),colorbar
2
相关函数
dct2,fftshift, idct2, ifft2 高级使用
相关视频
12. fft
fft离散傅里叶变换 句法
Y = fft(X) Y = fft(X,n)
Y = fft(X,[],dim) Y = fft(X,n,dim)
n为离散傅里叶变换的点数,如果取n为2的幂函数,则可进行快速傅里叶变换。当x的长度小于n时,x会被补零填充到与n同样的长度;当x的长度大于n时,x会被截断。如果x是个矩阵,列的长度将会以同样的方式调整,fft会对每列进行傅里叶变换,并返回一个相同维数的矩阵。 dim可适应于任意维度的fft运算。 运用举例
常用例子举例
常用的傅立叶变换是找到在嘈杂的时域信号下掩埋了信号的频率成分。考虑数据采样在1000赫兹。现有一信号由以下部分组成,50赫兹振幅为0.7的正弦和120赫兹振幅为1的正弦并且受到一些零均值的随机噪声的污染: Fs = 1000; % 采样频率 T = 1/Fs; % 采样时间 L = 1000; % 信号长度
t = (0:L-1)*T; % 时间矢量
% 50赫兹正弦波与120赫兹正弦波的和
x = 0.7*sin(2*pi*50*t) + sin(2*pi*120*t); y = x + 2*randn(size(t)); % 正弦波加噪声 plot(Fs*t(1:50),y(1:50)) %画此信号的时域图
title('Signal Corrupted with Zero-Mean Random Noise') xlabel('time (milliseconds)')
这在寻找原始信号的频率成分上是很难确定的。转换到频域,噪音信号Y的傅立叶变换采取快速傅立叶变换(FFT):
NFFT = 2^nextpow2(L); %y长度L附近的2的幂级数 Y = fft(y,NFFT)/L;
f = Fs/2*linspace(0,1,NFFT/2+1); % 单边拉普拉斯变换 plot(f,2*abs(Y(1:NFFT/2+1))) %画单边频谱图
title('Single-Sided Amplitude Spectrum of y(t)') xlabel('Frequency (Hz)') ylabel('|Y(f)|')
这样就可以很清楚的看到,信号在50Hz和120Hz处有较大的频谱分布,其余频谱分布是由于噪声造成的。 相关函数
与fft相关的函数:
fft2, fftn, fftw, fftshift, ifft
dftmtx, filter, freqz 在信号处理工具箱
13.fftshift
功能简介
把快速傅里叶变换的DC组件移到光谱中心。 使用方法
B=fftshift(A) 应用举例 B=fftn(A);
C=fftshift(B); 相关函数
fft2,fftn,ifftshift
14. filter2
功能简介
计算二维线型数字滤波,它与函数 fspecial 连用 使用方法
Y=filter2(B,X)
Y=filter2(B,X,'shape') 说明:对于 Y=filter2(B,X) ,filter2 使用矩阵 B 中的二维 FIR 滤波器对数据 X 进行滤波,结果 Y 是通过二维互相关计算出来的,其大小与 X 一样;对于 Y=filter2(B,X,'shape') ,filter2 返回的 Y 是通过二维互相关计算出来的,其大小由参数 shape 确定,其取值如下:
》full 返回二维相关的全部结果,size(Y)>size(X);
》same 返回二维互相关结果的中间部分,Y 与 X 大小相同; 》valid 返回在二维互相关过程中,未使用边缘补 0 部分进行计算的结果部分,有 size(Y) 应用举例 A= magic(6) A=
35 1 6 26 19 24 3 32 7 21 23 25 31 9 2 22 27 20 8 28 33 17 10 15 30 5 34 12 14 16 4 36 29 13 18 11 h=fspecial('sobel') h=
1 2 1 0 0 0 1 2 1
B=filter2(h,A,'valid') B=
8 4 4 8 23 44 5 40
23 50 1 40 8 4 4¨8 相关函数
conv2, roifilt2
15. filter
功能介绍
FILTER是一维数字滤波器 使用方法
Y = FILTER(B,A,X) ,输入X为滤波前序列,Y为滤波结果序列,B/A 提供滤波器系数,B为分子, A为分母 整个滤波过程是通过下面差分方程实现的: a(1)*y(n) = b(1)*x(n) + b(2)*x(n-1) + ... + b(nb+1)*x(n-nb) - a(2)*y(n-1) - ... - a(na+1)*y(n-na) [Y,Zf] = FILTER(B,A,X,Zi),输入X为滤波前序列,Y为滤波结果序列,B/A 提供滤波器系数,B为分子, A为分母,
并输入Zi指定X的初始状态,Zf为最终状态矢量
FILTER(B,A,X,[],DIM) 或 FILTER(B,A,X,Zi,DIM)指定X的维数DIM进行操作 举例
k=-100:100;
>> uk=[zeros(1,100),ones(1,101)]; >> a=[1 -5 6]; >> b=[2 -1]; >> x=uk;
>> y=filter(b,a,x)
16. hist
功能简介 绘制直方图 版本支持 MATLAB7.9 使用方法
直方图表现出数据的分布情形。 n = hist(Y)
输入:Y——输入数据矩阵 输出:n——每组的数据个数
注:具体做法为将Y平均分成10组,n用于统计每一组的数据个数。如果Y为矩阵,则对Y的每一列分别分组操作,得到的n为10*p的矩阵。 n = hist(Y,x)
输入:Y——输入数据矩阵、x——分组向量 输出:n——每组的数据个数 n = hist(Y,nbins)
输入:Y——输入数据矩阵、nbins——分组个数
输出:n——每组的数据个数
[n,xout] = hist(...) 《信号处理》
输出:n——每组的数据个数、xout——分组内容 注:可通过bar(xout,n) 来绘制直方图 应用举例
clc; clear all; close all; x = -4:0.1:4;
y = randn(10000, 1); hist(y, x);
h = findobj(gca,'Type','patch');
set(h, 'FaceColor', 'r', 'EdgeColor', 'w');
图1.1 hist实例
相关函数
bar, ColorSpec, histc, mode,patch, rose, stairs 相关视频
17. histc
功能简介
查询柱状图数目。 使用方法
n=histc(x,edges)
计算向量x中落入到边缘向量(它必须包含单调非增值)的元素之间的值的个数。n是一个长度为length(edges)的向量,包含这些个数。
如果edges(k)<=x(i) 对于矩阵,histc(x,deges)返回一个列柱状图数目的矩阵;对于N维数组,histc(x,edges)沿第一个非单一维进行操作。 n=histc(x,edges,dim) 沿第dim维进行操作. [n,bin]=histc(...) 返回一个指标矩阵区段。如果x是个向量,则n(k)=sum(bin==k).如果x是一个M*N的矩阵,则 for j=1:N, www.iLoveMatlab.cn n(k,j)=sum(bin(:,j)==k); end 为绘制柱状图,使用bar命令。 应用举例 x=-2.9:0.1:2.9; y=randn(10000,1); figure(1),hist(y,x) 图1 >> n_elements=histc(y,x); >> c_elements=cumsum(n_elements) c_elements = 4 11 21 29 50 73 107 149 193 262 326 425 519 653 790 945 1121 1318 1542 1788 2082 2376 2695 3054 3425 3803 4173 4576 4949 5355 5755 6165 6579 6940 7300 7644 7923 8189 8426 8672 8872 9052 9198 9318 9432 9533 9623 9694 9755 9802 9833 9865 9898 9919 9931 9945 9957 9961 9961 >> figure(2),bar(x,c_elements) 图2 相关函数 hist,mode,Specialized Plotting 相关视频 18. ifft2 功能简介 二维离散傅立叶逆变换 版本支持 MATLAB7.9 使用方法 Y = ifft2(X) 输入:X——输入二维矩阵 输出:Y——X的逆傅里叶变换矩阵 注:使用傅里叶转换算法(FFT),Y和X的维数相同。iff2首先判断X是否为共轭对称,如果是,则计算更加快速且输出为实数。 Y = ifft2(X,m,n) 输入:X——输入二维矩阵、m&n——傅里叶变换维数 输出:Y——X的逆傅里叶变换矩阵 y = ifft2(..., 'symmetric') 输入:'symmetric'——将X视为共轭对称,一般对由于舍入误差导致的非共轭对称有效 y = ifft2(..., 'nonsymmetric')号处理》 输入:'nonsymmetric'——将X视为非共轭对称 应用举例 clc; clear all; close all; I = imread('cameraman.tif'); gfilt = fspecial('gaussian', [256 256], 4); % 高斯模板 gfiltfft = fft2(gfilt); imfft = fft2(I); % fft变换 imfft1 = fftshift(abs(imfft)); % 幅值 imfft2 = fftshift(log(abs(imfft)+eps)); % log出来 newimfft = imfft.*gfiltfft; % 滤波 newim = fftshift(real(ifft2(newimfft))); % 反求 figure; subplot(1, 2, 1); imshow(I, []); title('原图像'); subplot(1, 2, 2); imshow(newim, []); title('滤波图像'); 图1.1 ifft2的滤波 相关函数 fft2, fftw, fftshift, ifft, ifftn, ifftshift 19. issorted 函数功能 判断集合中的元素是否按序排列 使用方法 TF = issorted(A) 如果集合A中的元素已经排序,则返回逻辑值1(真),否则返回逻辑值0(假)。 输入A可以为一个向量或为一个N*1或1*N的元胞字符数组,如果A和sort(A)的输出相等,则认为A已经排序。 TF = issorted(A, 'rows') 如果二维矩阵A中每一行的元素已经排序,则返回逻辑值1(真),否则返回逻辑值0(假)。 输入A可以为一个向量或为一个N*1或1*N的元胞字符数组。 如果A和sortrows(A)的输出相等,则认为矩阵A已经排序。 备注 对于字符数组,issorted用ASCII而不是按字母顺序排列。 不能用issorted函数排列维数大于2的数组。 应用举例 例1--用issorted排列向量 A = [5 12 33 39 78 90 95 107 128 131]; issorted(A) ans = 例2--用issorted排列矩阵 A = magic(5) A = 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9 issorted(A, 'rows') ans = 0 B = sortrows(A) B = 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9 17 24 1 8 15 23 5 7 14 16 issorted(B) ans = 1 例2--用issorted排列元胞数组 x = {'one'; 'two'; 'three'; 'four'; 'five'}; issorted(x) ans = 0 y = sort(x) y = 'five' 'four' 'one' 'three' 'two' issorted(y) ans = 1 相关函数sort, sortrows, ismember, unique, intersect, union, setdiff, setxor, is* 20. max 函数功能 找出数组中的最大元素 使用方法 C = max(A) 返回数组A不同维数的最大值。 如果A是一个向量时,max(A)返回向量的最大值; 如果A为一个矩阵时,max(A)把矩阵中的每列看成一个向量,返回一个包含每一列所有元素的最大值的行向量。 如果A是一个多维矩阵时,max(A)把矩阵中的第一个非单一维部分看成一个向量,返回每个向量的最大值。 C = max(A,B) 返回A和B中对应位置的最大元素,C的大小与A和B一致,A和B的维数必须一致或者都是标量。 C = max(A,[],dim) 返回A中沿着由标量dim指定维数的最大元素,比如,max(A,[],1)返回A中第一维(行)的最大值。 [C,I] = max(...) 找出A中最大元素及其索引,把最大值返回给C,最大值索引返回给I。 如果有几个相同的最大值,那么返回第一个被发现的索引。 备注 对于复数数组A,max返回具有最大复数模的复数,按max(abs(A))计算。 如果需要再计算最大相位角用max(angle(x))。 max函数忽略非数(NaNs). 应用举例 X=[2 8 4;7 3 9]; max(X,[],1) is [7 8 9] (返回的是每一列的最大值,也就是一个行向量) max(X,[],2) is [8;9] (返回的是每一行的最大值,也就是一个列向量) X=[1 5;2 6]; Y=[3 4;3 4]; Z=max(X,Y)(返回两个矩阵当中对应的最大值的矩阵,且两个矩阵X,Y是相同维度) Z = 3 5 3 6 相关函数 isnan, mean, median,min, sort 21. mean 函数功能 求数组的平均数或者均值 使用方法 M = mean(A) 返回沿数组中不同维的元素的平均值。 如果A是一个向量,mean(A)返回A中元素的平均值。 如果A是一个矩阵,mean(A)将中的各列视为向量,把矩阵中的每列看成一个向量,返回一个包含每一列所有元素的平均值的行向量。 如果A是一个多元数组,mean(A)将数组中第一个非单一维的值看成一个向量,返回每个向量的平均值。 M = mean(A,dim) 返回A中沿着标量dim指定的维数上的元素的平均值。对于矩阵,mean(A,2)就是包含每一行的平均值的列向量。 应用举例 A = [1 2 3; 3 3 6; 4 6 8; 4 7 7]; mean(A) ans = 3.0000 4.5000 6.0000 mean(A,2) ans = 2.0000 4.0000 6.0000 6.0000 相关函数 corrcoef, cov, max, median, min, mode, std, var 22. median 函数功能 求数组的中位数 使用方法 M = median(A) 返回数组A不同维数元素的中位数,数组A应该是single 或者double数据类型。 如果A是一个向量,median(A)返回A中元素的中位数。 如果A是一个矩阵,median(A)将A的各列视为向量,返回一个包含各列向量元素中位数的行向量。 如果A是一个多元数组,median(A)将数组中第一个非单一维的值看成一个向量, 返回每个向量的中位数。 M = median(A,dim) 返回A中沿着标量dim指定的维数上计算元素的中位数。 应用举例 A = [1 2 4 4; 3 4 6 6; 5 6 8 8; 5 6 8 8]; median(A) ans = 4 5 7 7 median(A,2) ans = 3 5 7 7 相关函数 corrcoef, cov, max,mean, min,mode, std, var 23. min 函数功能 找出数组中的最小元素 使用方法 C = min(A) 返回数组A不同维数的最小值。 如果A是一个向量时,min(A)返回向量的最小值; 如果A为一个矩阵时,min(A)把矩阵中的每列看成一个向量,返回一个包含每一列所有元素的最小值的行向量。 如果A是一个多维数组时,min(A)把矩阵中的第一个非单一维部分看成一个向量,返回每个向量的最小值。 C = min(A,B) 返回A和B中对应位置的最小元素,C的大小与A和B一致,A和B的维数必须一致或者都是标量。 C = min(A,[],dim) 返回A中沿着由标量dim指定维数的最小元素,比如,min(A,[],1)返回A中第一维(行)的最小值。 [C,I] =min(...) 找出A中最小元素及其索引,把最小值返回给C,最小值索引返回给I。 如果有几个相同的最小值,那么返回第一个被发现的索引。 备注 对于复数数组A,min返回具有最小复数模的复数,按min(abs(A))计算。 如果需要再计算最小相位角用min(angle(x))。 min函数忽略非数(NaNs). 应用举例 X=[2 8 4;7 3 9]; min(X,[],1) is [2 3 4] (返回的是每一列的最小值,也就是一个行向量) min(X,[],2) is [2;3] (返回的是每一行的最小值,也就是一个列向量) X=[1 5;2 6]; Y=[3 4;3 4]; Z=min(X,Y) (返回两个矩阵当中对应的最小值的矩阵,且两个矩阵X,Y是相同维度) Z = 1 4 2 4 相关函数 max,mean, median, sort 24. mode 函数功能 求数组中出现频率最多的值 使用方法 M = mode(X) 计算向量X的重复频率M(例如在X中的最大频率发生值)。如果X是一个矩阵,则M是包含每列的频率最大值的行向量。如果X是一个N维数组,则M沿数组中第一个非一维的频率最大的值。 当有多个值有相等的频率时,mode返回这个最小的值。 对于复数输入,返回的是排序中第一个值。 M = mode(X, dim) 沿着指定的维数dim计算X出现频率最多的值。 [M,F] = mode(X, ...) 同时也返回数组F,其元素代表X中对应元素出现的次数。输出数组M和F有相等的大小。[M,F,C] = mode(X, ...) 同时又返回元胞数组C,其元素是M中元素有相同频率的值升序排列的向量。三个输出数组M、F和C有相同大小的。 应用举例 例1 发现3*4矩阵中出现频率最多的值: X = [3 3 1 4; 0 0 1 1; 0 1 2 4] X = 3 3 1 4 0 0 1 1 0 1 2 4 mode(X) ans = 0 0 1 4 沿着第二维寻找出现频率最多的值: mode(X, 2) ans = 3 0 0 例2 randn('state', 0); % Reset the random number generator y = randn(1000,1); edges = -6:.25:6; [n,bin] = histc(y,edges); m = mode(bin) m = 22 edges([m, m+1]) ans = -0.7500 -0.5000 hist(y,edges+.125) 直方图 相关函数mean,median,hist,histc 25. prod 功能简介 计算数组元素的乘积 版本支持 Matlab6.5(含)以后,全部支持。 使用方法 B = prod(A) 将A矩阵不同维的元素的乘积返回到矩阵B。 Matlab中文论坛 如果A是向量,prod(A)返回A向量的乘积。 如果A是矩阵,prod(A)将A看作列向量,返回每一列元素的乘积并组成一个行向量B。 如果A是多维数组,prod(A)沿着第一个非单例作为向量,返回一个行向量数组。 B = prod(A,dim) 沿着指定的dim标量的维计算A矩阵的乘积。注:dim=2表示沿行计算。 应用举例 已知矩阵A: M = magic(3) M = 8 1 6 3 5 7 4 9 2 例一:计算矩阵A的每一列元素的乘积 prod(M) = 96 45 84 例二:计算矩阵A每一行元素的乘积, dim=2表示按行计算 prod(M,2) = 48 105 72 相关函数 cumprod,diff, sum 高级使用 相关视频 26. sort 函数功能 把数组元素按升序或降序排列 使用方法 B = sort(A) 把数组A沿不同维度上的元素按照升序排列。 如果A是向量,sort(A) 对A中元素按照升序排列。 如果A是矩阵,sort(A) 对A按每一列元素按照升序排列。 如果A是多维数组,sort(A) 对沿着第一非单元集的元素像向量一样处理并返回一个升序排列的向量数组。 如果A是字符串元胞数组,sort(A) 按照ASCII字典对字符串进行升序排列,对元胞数组不能使用dim或mode参数。 整型,浮点型,逻辑型和字符型数组是允许的,浮点型数组可以是复数数组。 对于A中相同的元素,则按照其在A中的先后位置排列在一起; 若A为复数,则按元素幅值按升序排列,若幅值相同的复数,则按照在区间[-pi,pi]的幅角升序排列。 如A中有非数NAN元素,则将他们排列到最后。 B = sort(A,dim) 按数组A中指定维度dim上的元素按照升序排列。 B = sort(...,mode) 按照mode的值为指定的方向进行排列,mode可取: 'ascend' 升序排列(默认)。 'descend' 降序排列。 [B,IX] = sort(A,...) 返回索引数组IX,其大小为size(IX) == size(A)。 若A是一个向量,B = A(IX)。 若A是一个m*n的矩阵,则IX的每一列是与A中列向量的元素相对应的置换向量。 for j = 1:n B(:,j) = A(IX(:,j),j); End 若A中有重复出现的相等的值,则返回原来相对位置的索引。 排列复数项 如果数组A有复数项r和s,sort排列他们按照以下规则:若满足以下任何一个条件,r将sort(A)中排在s前面:abs(r) < abs(s) abs(r) = abs(s) 并angle(r) 其中-pi例子: v = [1 -1 i -i]; angle(v) ans = 0 3.1416 1.5708 -1.5708 sort(v) ans = 0- 1.0000i 1.0000 0 + 1.0000i -1.0000 应用举例 举例(一)在每一维排列矩阵A,然后第三次排列它,返回排列结果的索引矩阵: A = [3 7 5 0 4 2 ]; sort(A,1) ans = 0 4 2 3 7 5 sort(A,2) ans = 3 5 7 0 2 4 [B,IX] = sort(A,2) B = 3 5 7 0 2 4 IX = 1 3 2 1 3 2 举例(二)按照降序排列每一列. A = [3 7 5 6 8 3 0 4 2]; sort(A,1,'descend') ans = 6 8 5 3 7 3 0 4 2 等价于 sort(A,'descend') ans = 6 8 5 3 7 3 0 4 2号处理》 相关函数issorted, max, mean, median, min, sortrows, unique 27. sortrows 函数功能 数组的行按照升序排列 使用方法 B = sortrows(A) 把A中的每一行按照升序排列,A必须是一个矩阵或列向量。 对于字符串,按照ASCII字典对字符串进行排列. 若A为复数,则按元素幅值进行排列,若幅值相同的复数,则按照在区间[-pi,pi]的幅角进行排列。 B = sortrows(A,column) 用指定的向量column对矩阵A进行按列排序,如果column的元素是正的,MATLAB对矩阵A相应的列进行升序排列,如果column的元素是负的,MATLAB对矩阵A相应的列进行降序排列。例如,sortrows(A,[2 -3]) 先对矩阵A第二列的每行按升序排列,然后对第三列按降序排列。 [B,index] = sortrows(A,...) 返回索引向量index。 若A是一个向量,则B = A(index)。 若A是一个m*n的矩阵,则B = A(index,:)。 应用举例 任意矩阵A: A=floor(gallery('uniformdata',[6 7],0)*100); A(1:4,1)=95; A(5:6,1)=76; A(2:4,2)=7; A(3,3)=73 A = 95 45 92 41 13 1 84 95 7 73 89 20 74 52 95 7 73 5 19 44 20 95 7 40 35 60 93 67 76 61 93 81 27 46 83 76 79 91 0 19 41 1 当只有一个输入参数时,sortrows函数是基于矩阵第一列排序的。对于特殊的列(e.g., 例子中的矩阵A(1:4,1))上一些行有相同元素 ,对右侧的列基于前一列排列 (A(1:4,2) in this case): B = sortrows(A) B = 76 61 93 81 27 46 83 76 79 91 0 19 41 1 95 7 40 35 60 93 67 95 7 73 5 19 44 20 95 7 73 89 20 74 52 95 45 92 41 13 1 84 当有二个输入参数时,sortrows函数是基于矩阵指定的列排序的。在指定的列有相等的行(e.g., A(2:4,:),如果用第二列排序矩阵A)留在原来的顺序: C = sortrows(A,2) C = 95 7 73 89 20 74 52 95 7 73 5 19 44 20 95 7 40 35 60 93 67 95 45 92 41 13 1 84 76 61 93 81 27 46 83 76 79 91 0 19 41 1 此例指定两列去排序:列1和7。sortrows先按列1排序,在列1中相等的值按列7排序。D = sortrows(A,[1 7]) D = 76 79 91 0 19 41 1 76 61 93 81 27 46 83 95 7 73 5 19 44 20 95 7 73 89 20 74 52 95 7 40 35 60 93 67 95 45 92 41 13 1 84 指定第四列按照相反的顺序对矩阵排序: E = sortrows(A, -4) E = 95 7 73 89 20 74 52 76 61 93 81 27 46 83 95 45 92 41 13 1 84 95 7 40 35 60 93 67 95 7 73 5 19 44 20 76 79 91 0 19 41 1 相关函数issorted,sort 28. std 函数功能 计算标准差 定义公式 里给出在教科书中两种常见的关于数据向量X的标准差s的定义。 其中 计算公式 n是元素的个数,上面两个等式的不同仅仅在于被除数,一个是n,一个是n-1。 均值 使用方法 s = std(X) 如果X是一个向量,用上面公式(1)返回标准差。 结果s是数据X分布的无偏估计方差的平方根,只要数据X是有独立同分布样本组成。 如果X是一个矩阵,std(X)返回一个包含每一列所有元素的标准差的行向量。 如果A是一个多元数组,std(X)将沿着数组X中第一个非单一维的值来计算标准差。 s = std(X,flag) 若flag = 0,这个命令和s = std(X)功能相同。 若flag = 1,std(X,1)用上面公式2来计算标准差。 s = std(X,flag,dim) 用指定的标量dim沿着数据X的维数来计算标准差,设置flag为0用n-1去标准化X,设置flag为1用n去标准化。 应用举例 对于矩阵X X = 1 5 9 7 15 22 s = std(X,0,1) s = 4.2426 7.0711 9.1924 s = std(X,0,2) s = 4.000 7.5056 相关函数corrcoef, cov, mean, median, var 29. sum 函数功能 求数组元素的总和 使用方法 B = sum(A) 返回数组A不同维数的总和。 如果A是一个向量,sum(A) 返回所有元素的总和。 如果A是一个矩阵,sum(A) 把A的列作为向量,返回一个包含每一列所有元素的总和的行向量。 如果A是一个多维数组,sum(A) 把没一维看做一个数组,返回一个行向量数组。 B = sum(A,dim) 沿着A的每一维计算总和用指定标量dim,dim是一个从1到N 的整数值,其中 N是A的维数。 dim为1就是计算A的每一列的总和,2计算A的每一行的总和,以此类推。 B = sum(..., 'double')和B = sum(..., dim,'double') 在双精度下(double)执行相加求和,返回double类型的结果,即使A是single数据类型或者integer数据类型。 默认的是integer数据类型。 B = sum(..., 'native')和B = sum(..., dim,'native') 在native数据类型下执行相加求和,返回相同类型的结果,默认的是single和double.数据类型。 备注 sum(diag(X)) 是求X的迹。 应用举例 三阶幻方为: M = magic(3) M = 8 1 6 3 5 7 4 9 2 因为三阶幻方每一列元素总和是相同的。 sum(M) = 15 15 15 想求每一行元素的的总和,可以用转置或者用dim参数。 转置: sum(M') = 15 15 15 用dim参数: sum(M,1) ans = 15 15 15 支持非double数据类型 sum函数不仅仅支持double类型数据。 single数据类型: sum函数可以应用到single数据类型并返回一个single类型的结果。比如: sum(single([2 5 8])) ans = 15 class(ans) ans = single Integer数据类型 sum函数应用到以下Integer数据类型时,MATLAB软件返回一个double数据类型的结果: int8 and uint8 int16 and uint16 int32 and uint32 例如: sum(single([2 5 8])); class(ans) ans = single sum([2 5 8]); class(ans) ans = double 如果你想MATLAB对Integer数据类型的结果是相同的Integer数据类型,可以用:sum(int8([2 5 8], 'native'); class(ans) ans = int8 相关函数 accumarray,cumsum, diff, isfloat, prod 30. var 函数功能 计算方差 使用方法 V = var(X) 如果X是一个向量,返回向量X的方差。 如果X是一个矩阵,var(X)返回一个包含矩阵X每一列方差的行向量。 如果X是一个N维数组,var沿着第一个X的非单一维进行操作。 只要X是独立同分布的,结果V是X分布的总体方差的无偏估计。 当N>1时,var由N-1来标准化,其中N是样本大小。 只要样本是独立同分布的,它就是X分布的总体方差的无偏估计。对N=1来说,v由N来标准化。 V = var(X,1) 由N来标准化,并且生成了样本关于其均值的二阶矩,var(X,0)等价于var(X)。 V = var(X,w) 计算向量X的方差利用权重向量w,向量w中元素的数目必须和X中的列的数目相同,向量w中的元素必须全是正数。var归一化w是的总和为1。 V = var(X,w,dim) 沿着指定维数dim求X的方差,默认用N-1标准化这时w为0,w为1时用N标准化。方差是其标准差(STD)的平方. 应用举例 x=[4,6,4,3,5,7] var(x) ans =2.1667 相关函数 corrcoef, cov, mean,median, std
正在阅读:
Matlab datafun 函数04-14
第3章《自测题、习题》参考答案12-25
工作手册:办公室工作手册05-05
4.广告翻译12-16
PSCAD中的控制系统模块06-09
商场设计调研报告08-14
建筑装饰简历免费模板12-11
闻一多先生的说和做优质课竞赛教案07-12
优秀技能人才事迹谢杰10-14
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 函数
- datafun
- Matlab
- 上海市可办理居转户的专业技术类职业资格目录
- 部编人教版一年级语文下册反义词、量词专项训练(反正面印一张即
- 《水泵及水泵站》配套习题 - 图文
- 关于成都市温江区社会主义新农村建设若干问题的调研报告
- 苏科版八年级物理下册8-1力 弹力2 导学案
- 20140515-高三理科综合能力模拟一(B卷)
- 扎哈 哈迪德室内设计风格解析 - 图文
- HL系统操作说明
- 备课笔记封面 - 图文
- 2010年会计从业资格考试题库及答案1
- 山东省第三批退出市场品种名单 - 图文
- 太阁立志传全将领卡片获得
- 《银行会计学》第04,5,6,7,8,9,10章在线测试
- 分析化学第七版(仪器分析部分)
- 工业和信息化部电子第五研究所增城总部新区(生活区)赛宝花园施
- 马可尼2955B(综合测试仪)操作使用说明书
- 5-7第七节 冷却系统
- 《企业管理概论》期末复习资料答案1309
- 天津PE政策
- 罗甸至望谟高速公路第2合同段项目前期策划会议纪要- 副本