中国大学生数学建模竞赛历年试题MATLAB程序

源代码在线查看: std.m

软件大小: 358 K
上传用户: smellteen
关键词: MATLAB 大学生 数学建模 竞赛
下载地址: 免注册下载 普通下载 VIP

相关代码

				function y = std(x,flag,dim)
				%列状数据标准差
				%例如
				%    A=[11 4 0.2;22 3 0.5;0 3 0.4];
				%    std(A)
				%
				%STD    Standard deviation.
				%   For vectors, STD(X) returns the standard deviation. For matrices,
				%   STD(X) is a row vector containing the standard deviation of each
				%   column.  For N-D arrays, STD(X) is the standard deviation of the
				%   elements along the first non-singleton dimension of X.
				%
				%   STD(X) normalizes by (N-1) where N is the sequence length.  This
				%   makes STD(X).^2 the best unbiased estimate of the variance if X
				%   is a sample from a normal distribution.
				%
				%   STD(X,1) normalizes by N and produces the second moment of the
				%   sample about its mean.  STD(X,0) is the same as STD(X).
				%
				%   STD(X,FLAG,DIM) takes the standard deviation along the dimension
				%   DIM of X.  When FLAG=0 STD normalizes by (N-1), otherwise STD
				%   normalizes by N.
				%
				%   Example: If X = [4 -2 1
				%                    9  5 7]
				%     then std(X,0,1) is [ 3.5355 4.9497 4.2426] and std(X,0,2) is [3.0
				%                                                                   2.0]
				%   See also COV, MEAN, MEDIAN, CORRCOEF.
				
				%   J.N. Little 4-21-85
				%   Revised 5-9-88 JNL, 3-11-94 BAJ, 5-26-95 dlc, 5-29-96 CMT.
				%   Copyright (c) 1984-98 by The MathWorks, Inc.
				%   $Revision: 5.17 $  $Date: 1997/11/21 23:24:08 $
				
				if nargin				if nargin				  dim = min(find(size(x)~=1));
				  if isempty(dim), dim = 1; end
				end
				
				% Avoid divide by zero.
				if size(x,dim)==1, y = zeros(size(x)); return, end
				
				tile = ones(1,max(ndims(x),dim));
				tile(dim) = size(x,dim);
				
				xc = x - repmat(sum(x,dim)/size(x,dim),tile);  % Remove mean
				if flag,
				  y = sqrt(sum(conj(xc).*xc,dim)/size(x,dim));
				else
				  y = sqrt(sum(conj(xc).*xc,dim)/(size(x,dim)-1));
				end
				
							

相关资源