我正在尝试绘制 Shifted Schwefel 问题函数的轮廓,但一直出现此错误:Z 的大小必须为 2x2 或更大。我在这个论坛上搜索了一些我帮助过的信息,但无法修复上述错误。我从这个论坛获得的信息引导我尝试这段代码:
min = -50;
max = 50;
steps = 20;
c = linspace(min, max, steps); % Create the mesh
[x, y] = meshgrid(c, c); % Create the grid
%o=-50+100*rand(1,2);
%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 的错误,其中 f 的值最多至少为 2x2 或更大。我知道我的 f 只接受一个输入,因此只会输出一个。我尝试将它放在嵌套的 for 循环中,但仍然给我一个向量数组,而不是至少 2x2 的矩阵。如果输入是两个,那么问题会很好,但问题是,它是一个输入。有谁知道我怎样才能使这个“f”输出一个至少 2x2 的矩阵,以便我可以绘制轮廓的 z?