How can I plot several graphs with slightly different name in a loop?
Afficher commentaires plus anciens
I want to plot many graphs in a loop. But every plot should get a description like h1, h2 and so on, that I can change the settings after plotting all the data. How does this work? I have a read a lot that I need an array, but what do I have to change at the fourth line (names(i))?
x = {'2';'3';'4'};
names = [strcat('h',x)]
for i=[2,3,4]
names(i)=plot(xx,yy);
end
set(h2,'Linewidth',1.5);
1 commentaire
"But every plot should get a description like h1, h2 and so on, that I can change the settings after plotting all the data."
No, they definitely shouldn't have lots of names like that! That would be about the worst way to write MATLAB code: slow, buggy, complex, hard to debug, insecure. Read this to know why:
All you need is to use indexing, which is simple and efficient, and is introduced very clearly in MATLAB's Getting Started tutorials (and which are highly recommended for all beginners):
Réponse acceptée
Plus de réponses (3)
How MATLAB works is different to what you are attempting: you simply allocate values into the array using indexing, rather than creating an array of names and somehow magically allocating to them.
All you need is to use indexing:
lhnd = zeros(1,4);
for k = 1:4
lhnd(k) = plot(xx,yy);
end
set(lhnd(2),'Linewidth',1.5); % use indexing!
goerk
le 17 Oct 2017
You can use the eval command. Simple example:
eval(['h=plot([1:10])'])
In your case something like
eval(['h' num2str(i) '= plot(xx,yy)'])
should do the job.
1 commentaire
KSSV
le 17 Oct 2017
for i = 1:3
figure(i) ;
h(i) = plot(rand(10,1));
end
set(h(1),'linewidth',10)
1 commentaire
Robert Berghaus
le 17 Oct 2017
Catégories
En savoir plus sur Entering Commands dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!