Matlab 如何获取循环中线性图的动态图例?

Matlab 如何获取循环中线性图的动态图例?,matlab,dynamic,matlab-figure,legend,Matlab,Dynamic,Matlab Figure,Legend,差异条件:如何在每次迭代结束时清除动态图例;如何在每次迭代结束时删除拟合的线性线 我试图扩展线程的这个答案,在一个图上迭代图例。 关于在一个线性图上覆盖动态图例的建议 close all; clear all; % Test data aSize=zeros(2,777); aSize=[[0, 0]' randi(3,2,777)]; % STDEV about 3 x=0:1:180; hFig=figure; index=1; while (index<=7);

差异条件:如何在每次迭代结束时清除动态图例;如何在每次迭代结束时删除拟合的线性线

我试图扩展线程的这个答案,在一个图上迭代图例。 关于在一个线性图上覆盖动态图例的建议

close all; clear all; 

% Test data
aSize=zeros(2,777);
aSize=[[0, 0]' randi(3,2,777)]; % STDEV about 3

x=0:1:180; 

hFig=figure; 

index=1;
while (index<=7); 

    % origo left alone
    aSize(:, index+1) = aSize(:, index+1) + index; % to have linearly increasing trend

    sz=40; 
    legend('-DynamicLegend');
    h = scatter(aSize(1,1:index+1)', aSize(2,1:index+1)', sz, ...
          'MarkerEdgeColor',[0 .5 .5],...
          'MarkerFaceColor',[0 .7 .7],...
          'LineWidth',1.5, ...
          'DisplayName', sprintf('Data'));
    xlabel('width'); ylabel('height');
    hold on; 

    % Optimum
    x=0:1:max( aSize(1, 1:index+1) ); 
    y = x; % assume uniform
    grid on; 
    h1=plot(x,y, 'black', ...
        'DisplayName', sprintf('Optimum'));

    % Fit with R2 linear
    x=aSize(1,1:index+1); 
    b1 = aSize(1,1:index+1)' \ aSize(2,1:index+1)'; 
    yCalc1 = b1 * aSize(1,1:index+1);
    Rsq1 = 1 - sum((y(1:index+1) - yCalc1).^2)/sum((y(1:index+1) - mean(y(1:index+1))).^2)

    % origo needed
    x = [0 x]; 
    yCalc1 = [0 yCalc1]; 
    h2=plot(x(1:index+2)', yCalc1(1:index+2)', '--p', ...
        'DisplayName', sprintf('Fit R2 = %d', Rsq1)); 

    drawnow; 

    index=index+1;

end;
全部关闭;清除所有;
%测试数据
aSize=零(2777);
aSize=[[0,0]'randi(3,2777)];%科技及发展局约3
x=0:1:180;
hFig=数字;
指数=1;

while(index删除这一行
图例('-DynamicLegend');
并在
drawnow
行之前写入它,然后在该行之后写入
暂停
。因此,以下是循环末尾的行

legend('-DynamicLegend');
drawnow; 
hold off
index=index+1;

你是在问如何删除循环结束时先前绘制的数据吗?在循环结束前写下
暂停
。这符合你的要求吗?我从你的问题中删除了答案部分。问题只包含问题。我判断你的添加没有给已经接受的answe添加任何内容你用的是r,所以在问题中没有必要这样做。如果你有实质性的东西要补充,你可以在新的答案中这样做。