【发布时间】:2014-01-17 07:49:46
【问题描述】:
我是 matlab 编程新手,我有一个小问题。
我想为 2 个坐标绘制欧几里德距离函数的 3d 图,如下图所示:
你能帮我提供源代码吗?我怎样才能画出这个情节? 我的第一个想法是错误的:
[A] = meshgrid(-100:.5:100, -100:.5:100);
D1 = bwdist(A);
figure
surf(double(A), double(D1))
【问题讨论】:
我是 matlab 编程新手,我有一个小问题。
我想为 2 个坐标绘制欧几里德距离函数的 3d 图,如下图所示:
你能帮我提供源代码吗?我怎样才能画出这个情节? 我的第一个想法是错误的:
[A] = meshgrid(-100:.5:100, -100:.5:100);
D1 = bwdist(A);
figure
surf(double(A), double(D1))
【问题讨论】:
就是这样完成的……
[x, y] = meshgrid(-100:.5:100, -100:.5:100);
你必须计算欧几里得距离。我假设您希望它们具有原产地。
z = (x.^2 + y.^2).^0.5; % square root of sum of squares (euclidean distance with origin)
surf(x, y, z);
注意:meshgrid(-100:.5:100, -100:.5:100) 可能会使绘图的分辨率过高。如果您无法查看情节,请降低分辨率。
使用[x, y] = meshgrid(-100:5:100, -100:5:100);
【讨论】: