求助 本人想用MATLAB进行熵值法的运算,求程序

求助 本人想用MATLAB进行熵值法的运算,求程序,第1张

计算步骤如下图渣蔽:在信枯梁山息论中,熵是对不确定性的一种度量。信息量越大,不确定性就越小,熵也就越小;信息量越小,不确定性越大,熵也越大。根据熵的特性,我们可以通过计算熵值来判断一个事件的没中随机性及无序程度,也可以用熵值来判断某个指标的离散程度,指标的离散程度越大,该指标对综合评价的影响越大。

%层次分析法的matlab程序

1、disp('请输入判断矩阵A(n阶)')

A=input('A=')

[n,n]=size(A)

x=ones(n,100)

y=ones(n,100)

m=zeros(1,100)

m(1)=max(x(:,1))

y(:,1)=x(:,1)

x(:,2)=A*y(:,1)

m(2)=max(x(:,2))

y(:,2)=x(:,2)/m(2)

p=0.0001i=2k=abs(m(2)-m(1))

while k>p

i=i+1

x(:,i)=A*y(:,i-1)

m(i)=max(x(:,i))

y(:,i)=x(:,i)/m(i)

k=abs(m(i)-m(i-1))

disp('权向量')disp(w)

disp('最大特征值')disp(t)

2、y(:,i)=x(:,i)/m(i)

k=abs(m(i)-m(i-1))

end

a=sum(y(:,i))

w=y(:,i)/a

t=m(i)

disp('权向量')disp(w)

disp('最大特征值')disp(t)

%以下是一致性检验

扩展资料:

Matlab是一个高级的矩阵/阵列语言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。用户可以在命令窗口中将输入语句与执行命令同步,也可以先编写好一个较大的复杂的应用程序(M文件)后再一起运行。

新版本的MATLAB语言瞎带是基于最为流行的C++语言基础上的,因此语法特征与C++语言极为相似,而且更加简单,更加符合科薯孙技人员对数学表达式的书写格式。使之更利于非计算机专业的科技人员使用。而且这种语言可移植性好、可拓展性极强,这也是MATLAB能够深入到科学研究数神链及工程计算各个领域的重要原因。

参考资料来源:百度百科-MATLAB

图像的熵,在型纯许多场合下都有应用,也可以有多种编写程序的方法,下面介绍作者编写的一个图像熵的函数yentropy(),可以直接调用首租晌。可者锋以用于求图像的局部熵,也可以求其整体熵。

function entr=yentropy(a)

a=uint8(a) %这里a为8位的单色图像或24为的RGB彩色图像

[m n l]=size(a)

entr=0

for k=1:l

hi=zeros(1,256)

for i=1:m

for j=1:n

hi(a(i,j,k)+1)=hi(a(i,j,k)+1)+1 %求每种值的在图像中出现的次数

end

end

hi=sort(hi,'descend')

hi=hi./m./n %求概率

en=0.0

for i=1:256

if hi(i)>0

en=en-hi(i).*log2(hi(i)) %概率不为0 累加求熵

else

i=257 %否则停止

end

end

entr=entr+en

end

entr=entr/l %当l=1时a为单色图像;当l=3时a为彩色图像,三个页面的熵平均


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

原文地址: https://outofmemory.cn/yw/12285549.html

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

发表评论

登录后才能评论

评论列表(0条)

保存