MATLAB: Comment mettre à jour YData de plusieurs sous-tracés

Dans mon script, je crée quelques tracés dans le code init, puis je veux mettre à jour le contenu du tracé dans mon code principal. Pour améliorer les performances, je veux éviter de tracer encore et encore, car cela devient assez lent pour les ensembles de données plus volumineux. Voilà pourquoi j’essaie de définir le YData des tracés, mais je reçois l’erreur« Objet invalide ou supprimé »à la ligne de code, où je mets les Ydata.
Voici le code init:
 
% Create plots
% Channel 1
subplot(3,1,1);
h1 = plot(t, RecBuf(:,1));
ylim([0 1]);
xlabel('t /s');
ylabel('Ouput (norm. to 1)');
hold on;
% Channel 2 to 8
subplot(3,1,2);
h2 = plot(t, RecBuf(:,2:8));
xlabel('t /s');
ylabel('Ouput (norm. to 1)');
hold on;
 
Et c’est le code où j’essaie de mettre à jour les données. set (h1,…) renvoie l’erreur.
 
% Plot Ch 1
subplot(3,1,1);
cla;
%plot(t, RecBuf(:,1));
set(h1, 'YData', RecBuf(:,1));
% Plot Ch 2 to 8
subplot(3,1,2);
cla;
plot(t, RecBuf(:,2:8));
 
Pourquoi le descripteur de l’intrigue serait-il invalide?

Meilleure réponse

  • h1est un objet sur le sous-tracé (3,1,1).
     
    subplot(3,1,1);
    h1 = plot(t, RecBuf(:,1));
     
    Ensuite, vous effacez tout de ce sous-intrigue en utilisantcla ()
     
    subplot(3,1,1);
    cla;
     
    Ainsi, lorsque vous mettez à jour leYData, l’objet a déjà été supprimé.
     

    set(h1, 'YData', RecBuf(:,1)); % ERRROR