MATLAB - 在循环后将绘图添加到另一个绘图,更复杂
MATLAB - adding plot to another plot after loop, more sophisticatedly
我有一个问题,我希望能在那里找到帮助。
这是我的示例代码。它只是我算法的一部分。想象一下,点是如何移动的,在方程式中,我需要显示具有两个变量的函数轮廓并进入点。因为我有比抛物线函数更难的函数,所以方程式比我需要的要长。出于这个原因,我在循环之前移动了轮廓图。但我有问题。我需要始终显示 countour 并仅针对 i-loop 点,但我的解决方案不起作用。请帮助我!
[R S] = meshgrid(-5:0.1:5, -5:0.1:5);
figure
contour(R, S, R.^2 + S.^2, 5);
axis([-5,5,-5,5])
axis square
hold on
for i=1:50
a = 0;
b = 1:2
B = repmat(b,5,1)
A = unifrnd(a,B)
x = A(1:5,1);
y = A(1:5,2);
scatter(x,y,'fill')
hold off
pause(0.5)
end
您应该存储 scatter
图的句柄并简单地更新它的 XData
和 YData
属性,而不是每次都销毁图对象
[R S] = meshgrid(-5:0.1:5, -5:0.1:5);
figure
contour(R, S, R.^2 + S.^2, 5);
axis([-5,5,-5,5])
axis square
hold on
% Create a scatter plot and store the graphics handle so we can update later
hscatter = scatter(NaN, NaN, 'fill');
for i=1:50
a = 0;
b = 1:2
B = repmat(b,5,1)
A = unifrnd(a,B)
x = A(1:5,1);
y = A(1:5,2);
% Update the X and Y positions of the scatter plot
set(hscatter, 'XData', x, 'YData', y);
pause(0.5)
end
我有一个问题,我希望能在那里找到帮助。 这是我的示例代码。它只是我算法的一部分。想象一下,点是如何移动的,在方程式中,我需要显示具有两个变量的函数轮廓并进入点。因为我有比抛物线函数更难的函数,所以方程式比我需要的要长。出于这个原因,我在循环之前移动了轮廓图。但我有问题。我需要始终显示 countour 并仅针对 i-loop 点,但我的解决方案不起作用。请帮助我!
[R S] = meshgrid(-5:0.1:5, -5:0.1:5);
figure
contour(R, S, R.^2 + S.^2, 5);
axis([-5,5,-5,5])
axis square
hold on
for i=1:50
a = 0;
b = 1:2
B = repmat(b,5,1)
A = unifrnd(a,B)
x = A(1:5,1);
y = A(1:5,2);
scatter(x,y,'fill')
hold off
pause(0.5)
end
您应该存储 scatter
图的句柄并简单地更新它的 XData
和 YData
属性,而不是每次都销毁图对象
[R S] = meshgrid(-5:0.1:5, -5:0.1:5);
figure
contour(R, S, R.^2 + S.^2, 5);
axis([-5,5,-5,5])
axis square
hold on
% Create a scatter plot and store the graphics handle so we can update later
hscatter = scatter(NaN, NaN, 'fill');
for i=1:50
a = 0;
b = 1:2
B = repmat(b,5,1)
A = unifrnd(a,B)
x = A(1:5,1);
y = A(1:5,2);
% Update the X and Y positions of the scatter plot
set(hscatter, 'XData', x, 'YData', y);
pause(0.5)
end