1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| close all
clc
[x,y]=meshgrid(linspace(-2,2,101));
A=(x.^2)+(y.^2);
SizeA=size(A);
surf(x,y,A)
shading interp
view(0,-90)
iRand=randperm(prod(SizeA));
K=1;
j=1;
while numel(iRand)>1
[I,J] = ind2sub(SizeA,iRand(1));
Res= CasesAdjacentes(I,J,K,SizeA);
index=[sub2ind(SizeA,Res(:,1),Res(:,2));iRand(1)];
[Min,Imin] = min(A(index(1:end-1)));
if A(iRand(1))<Min
break
end
index(Imin)=[];
for m=1:numel(index)
iRand(iRand==index(m))=[];
end
j=j+1;
end
%%
j
hold on
plot3(x(iRand(1)),y(iRand(1)),A(iRand(1)),'MarkerFaceColor',[1 0 0],'MarkerSize',15,...
'Marker','hexagram',...
'LineStyle','none',...
'Color',[1 0 0]); |
Partager