-
Notifications
You must be signed in to change notification settings - Fork 0
/
plotlandscape.m
74 lines (49 loc) · 1.34 KB
/
plotlandscape.m
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
function plotlandscape(upper,lower,N)
%--------------------------------------------------------------------------
%This is the plotting function of the Gaussian landscape generator(2D only)
%
%Syntax: plotlandscape(upper,lower,N)
%
%Example:plotlandscape(5,-5,100)
%
%Inputs:
% upper boundary of the search space
% lower boundary of the search space
% number of sampling points
%
%Outputs:
% 3D surface plot
% 2D contour plot
%
%Author: Bo Yuan ([email protected])
%--------------------------------------------------------------------------
if nargin~=3
disp('Usage: plotlandscape(upper,lower,N)');
return;
end
if upper<=lower
disp('Upper must be larger than Lower!');
return;
end
if N<10
disp('Incorrect N value!');
return;
end
%-----------------------------------------------------
inc=(upper-lower)/N;
x=lower:inc:upper; %x coordinates
y=lower:inc:upper; %y coordinates
d=length(y);
pos=zeros(d*d,2); %(x,y)coordinates for all sampling points
for i=1:d
pos((i-1)*d+1:i*d,1)=x(i)*ones(d,1);
end
pos(:,2)=repmat(y',d,1);
f=fitness(pos); %evaluate individuals
z=vec2mat(f,d)'; %transform into a matrix
figure;
colormap(gray); %3D surface plot
surfl(x,y,z);
shading interp;
figure;
[C,H]=contour(x,y,z); %2D contour plot