hspec(idx) = eps%令矩阵hspec中等于0的元素等于eps,eps是matlab中的一个常数,无限接近于0
例如:
>>x=0
>>sin(x)/x
ans =
NaN
>>x=eps
>>sin(x)/x
ans =
1
这不是蛋疼吗?
干嘛不用库函数?
源程序:(保存成文件,文件名“pyulear.m”)(直接下附件也行)
function varargout = pyulear(x,p,varargin) %p就是阶数
method = @aryule
[Pxx,freq,msg,units,Sxx,options] = arspectra(method,x,p,varargin{:})
if nargout==0, %无输出,直接作图
freq = {freq}
if strcmpi(units,'Hz'), freq = {freq{:},'Fs',options.Fs} end %看看单位是不是Hz
hpsd = dspdata.psd(Pxx,freq{:},'SpectrumType',options.range)
hspec = spectrum.yulear(p)
hpsd.Metadata.setsourcespectrum(hspec)
plot(hpsd)
else %有输出,按重要性降序
varargout = {Pxx,freq,Sxx} % Pxx=PSD, Sxx=PS
end
用法和系统的库函数一样
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)