求救编程高手,用matlab仿真直线插补的程序

求救编程高手,用matlab仿真直线插补的程序,第1张

%逐点比较法直线插补

%==========================================================================

F=0 %偏差函数

xs=0 %X起始坐标

ys=0 %Y起始坐标

xe=5 %X终点坐标

ye=6 %Y终点坐标冲则

xo=xs %插补前X坐标

yo=ys %插补前Y坐标

xn=xs %插补后X坐标

yn=ys %插补后Y坐标

dx=1 %X脉冲当量

dy=1 %Y脉冲当量

TT=1 %插补周期

%==========================================================================

n=abs(xe-xs)+abs(ye-ys) %插补次数

plot([xs xe*dx],[ys ye*dy],'r-')hold ongrid on

%==========================================================================

while(n>袜激0)

if(F>=0)

xn=xo+dx

yn=yo

plot([xo xn],[yo yn],'b-')hold ongrid on

xo=xnyo=yn

F=F-ye

else

yn=yo+dy

xn=xo

plot([xo xn],[yo yn],'告判袜b-')hold ongrid on

xo=xnyo=yn

F=F+xe

end

pause(TT)

n=n-1

end

i=size(Y(:,1))

t = 0.001:0.001:0.001*i

x = sin(2*pi*50*t)+sin(2*pi*120*t)

s=x.*(1*Y(:,1))'袜饥此告迅肢租

plot(x)

%%%赋值

m=3

n=4 %%%%矩阵的行列下标

c=[1 2 3 4 5 6 7 89 10 11 12]

%%%% 数据规运颤范化

r=[]

for i=1:m

for j=1:n

r(i,j)=abs(c(i,j)-min(c(i,:)))/(max(c(i,:))-min(c(i,:)))

end

end

%%%%定义熵

for i=1:m

for j=1:m

k(i,j)=r(i,j)/sum(r(:,j))

end

end

for i=1:m

for j=1:n

if (k(i,j)==0)

k_lnk(i,j)=0

else

k_lnk(i,j)=k(i,j)*log(k(i,j))

end

end

end

for i=1:m

h(i)=-log(n)*sum(k_lnk(i,:))%定义熵的第i个唯悄悄指标,公式应该是错误的吧,应该是j=1,n吧

end

%%计算评价指标的变异系数

g=1-h

%%计算评价指标的熵权

w=g./sum(g)

%%% tmd gongsi 禁止拷贝,打了两遍,我够辛苦的,不指渣给分没天理了

%%%测试用矩阵较有规律,分母为0了,换一些其他的数据就较为正常了


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存