matlab中计算图像的熵的程序有一点看不懂

matlab中计算图像的熵的程序有一点看不懂,第1张

idx = hspec == 0%找出矩阵hspec中等于0的元素

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

用法和系统的库函数一样


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11411278.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存