matlab 图像插值问题
发布网友
发布时间:2022-05-16 04:50
我来回答
共2个回答
热心网友
时间:2023-10-11 18:01
我修改了你的第二个程序,你的程序写的真是不认真,想到什么写什么,顾头不顾尾。我只是将程序调试对,就不优化了。
%find the boundary and interpolation
clear all;clc
%input data
a=[1 2 3 4 4 4 2 1 1 2 4 5];b=[1 1 4 1 2 3 3 3 4 4 4 1];
x=a;y=b;
%set the initial state
x1=x(1);y1=y(1);
xt=x1;yt=y1;
ind=1;
len=length(x);
%organise
while(length(x1)<len)%当x1新序列的值个数小于x的个数时,就是说还没有重新排完
d=inf*ones(1,length(x));
for j=1:length(x)
if j==ind%自己与自己距离不判断了
continue
end
d(j)=sqrt((xt-x(j))^2+(yt-y(j))^2);%把ind到第j点的距离存进d(j)
end
[c,ind]=min(d);%找出ind到各个点的最短距离
xt=x(ind);
yt=y(ind);
x1=[x1,x(ind)];%把ind的点放到序列的后面
y1=[y1,y(ind)];
x(ind)=[];%删掉已经找过的点
y(ind)=[];
end
%interpolation
t=1:length(x1);
tc=1:0.1:length(x1);
xc=interp1(t,x1,tc);%插值
yc=interp1(t,y1,tc);
plot(xc,yc,'r*');
hold on
plot(x1,y1,'b',x1,y1,'o');来自:求助得到的回答
热心网友
时间:2023-10-11 18:02
你把你这个图形或者数据给我 我帮你编写