MVEs are more concerned with the satisfaction of those they help than with the considerable points they can earn. They are the types of people you feel privileged to call colleagues. Join us in honoring this amazing group of Experts.
x = -50 + 100.*rand(50,2);
function f = func(x)
D = 2;
[ps, D] = size(x);
o=-50+100*rand(1,D);
x=x-repmat(o,ps,1);
f = max(abs(x), [], 2);
end
This is how i tried doing it:
cmin = -50;
cmax = 50;
steps = 20;
c = linspace(cmin, cmax, steps); % Create the mesh
[X1, X2] = meshgrid(c, c)
contour(X1,X2,f);
x = -50 + 100.*rand(50,2);
This random matrix is going to be passed to the function func like this:eva = func(x)
The function returns an array for vectors which are 50 x 1. I try to plot contour of the resulting eva by doing This: My 2 dimensional map is This [X1, X2] = meshgrid(c, c) as it is shown here:cmin = -50;
cmax = 50;
steps = 20;
c = linspace(cmin, cmax, steps); % Create the mesh
[X1, X2] = meshgrid(c, c)
contour(X1,X2,eva);
The unite of my equal value line is:
steps = 20;
But any time i run this, it tell me that eva, has to be a matrix of atleast 2x2. As it is now it just give a matrix of 50 x 1. I need eva to be atleast 2x2 matrix so that i can plot the contour. I am now seeking for advice how to do this. Is there a way i can plot the contour? Any suggestion?
M = 50;
n = 2;
x = -50 + 100.*rand(M,n);
cmin = -M;
cmax = M;
ngrid = 5.05;
x = cmin:ngrid:cmax;
y = cmin:ngrid:cmax;
o = -50+100*rand(1,n);
y = y - repmat(o,1,10);
x = x - repmat(o,1,10);
f = arrayfun(@tteee1,x);
figure;
contour(x,y,f);
figure;
surfc(x, y,f);
title(sprintf('The Surface and contour Plot'))
:function fit = tteee1(x)
D = 2;
[ps, D] = size(x);
o=-50+100*rand(1,D);
x=x-repmat(o,ps,1);
fit = max(abs(x), [], 2);
end
??? Error using ==> contour at 73
Z must be size 2x2 or greater.
Error in ==> tteee at 20
contour(x,y,f);
data = 20*rand([10,10])
figure;
contour(data);
cmin = -M;
cmax = M;
steps = 20;
c = linspace(cmin, cmax, steps); % Create the mesh
[x, y] = meshgrid(c, c); % Create the grid
o=-50+100*rand(1,n);
c = c - repmat(o,1,10);
f = arrayfun(@tteee1,x);
figure,
contour(x,y,f);
figure,
surfc(x, y,f);
function f= tteee1(x)
D = 2;
[ps, D] = size(x);
o=-50+100*rand(1,D);
x=x-repmat(o,ps,1);
f = max(abs(x), [], 2);
end
for x = 1:20
for y = 1:20
hilbert(x, y) = 1/(x+y -1);
end
end
This is an example from the Matlab documentation.
cmin = -M;
cmax = M;
steps = 20;
c = linspace(cmin, cmax, steps); % Create the mesh
[x, y] = meshgrid(c, c); % Create the grid
%o=-50+100*rand(1,n);
%c = c - repmat(o,1,10);
for I=1:length(x)
for J=1:length(y)
o=-50+100*rand(1,2);
x=x-repmat(o,20,10);
f = max(abs(x), [], 2);
end
end
figure,
contour(x,y,f);
figure,
surfc(x, y,f);
Z must be size 2x2 or greater
Are you really trying to do something with Genetic Algorithms and the Schwefel function?Yes, i am actually try to implement Estimation of Distribution Algorithm (EDA) in Evolutionary Computation to understand it. I am trying to test it on Benchmark functions in 2d and i am having trouble with plotting contour of some of them, and Schwefel function is one of them.
SWxlimits = [-100 100];
SWbias = [20 -20];
SWdx = (SWxlimits(2) - SWxlimits(1)) / 100;
SWN = floor((SWxlimits(2) - SWxlimits(1)) / SWdx) + 1;
Schwefel221objShifted = zeros(SWN, SWN);
SWi = 0;
for SWx = SWxlimits(1) : SWdx : SWxlimits(2)
SWi = SWi + 1;
SWk = 0;
for SWy = SWxlimits(1) : SWdx : SWxlimits(2)
SWk = SWk + 1;
Schwefel221objShifted(SWi,SWk) = max(abs(SWx-SWbias(1)), abs(SWy-SWbias(2)));
end
end
[SWx, SWy] = meshgrid(SWxlimits(1) : SWdx : SWxlimits(2));
figure;
contour(SWx,SWy,Schwefel221objShifted);
figure;
figure;
surfc(SWx,SWy,Schwefel221objShifted);
If you are experiencing a similar issue, please ask a related question
Title | # Comments | Views | Activity |
---|---|---|---|
2k Power n formula | 2 | 38 | |
HP Deskjet 2132 | 3 | 155 | |
Graph | 2 | 86 | |
Access question - internal training | 9 | 65 |
Join the community of 500,000 technology professionals and ask your questions.
Connect with top rated Experts
11 Experts available now in Live!