对于我的作业,我应该计算出最小的圆圈。第一部分要求我计算欧氏距离,我使用以下代码进行管理:
function euclidean = center(x, y)
maximaldist = 0;
rng(0, 'twister')
A= randi([0 10],10,2)
for i=1:size(A,1)
euclidean=sqrt((x-A(i)).^2 + (y-A(i+size(A,1))).^2);
if euclidean > maximaldist
maximaldist = euclidean;
end
end
对于第二部分我需要继续使用fminsearch,但由于某种原因我无法在代码中实现它(我可以在命令窗口中使用它)。有人可以帮我吗?
编辑:所以我尝试过......基本上我能找到的一切。
for i=1:size(A,1)
fun=@(x) sqrt((x(1)-A(i)).^2 + (x(2)-A(i+size(A,1))).^2);
end
x0=[0 0];
fminsearch(fun, x0)
end
出于绝望,这是我与fminsearch部分的混乱局面。
然后我把代码改成了这个;所以我可以尝试如下;
function euclidean = denneme(x,y)
%point_x=point(1);
%point_y=point(2);
rng(0, 'twister')
a= randi([0 10],10,1);
b= randi([0 10],10,1);
distance=sqrt((x-a).^2 + (y-b).^2);
euclidean=max(distance);
f= @(x) denneme(x(1),x(2));
fminsearch(f, [0 0])
但它没有足够的输入参数。我已经尝试了很多东西并删除了很多这样的东西,所以我无法进行大量的试验。
答案 0 :(得分:0)
如果您发布了您已尝试过的内容并说明了您遇到的问题,那将会有所帮助。
编辑:在这里,你是否超载了中心功能?我很好奇那个代码已经运行了。