dynamic name variable as the output of a function

18 vues (au cours des 30 derniers jours)
Clara
Clara le 9 Jan 2013
Modifié(e) : Stephen23 le 19 Juin 2019
Hello,
I have a function that I call several times, in a loop and I change the parameter, and I would like to change the output name.
For example, what I am doing is
for i=1:N
ipath=eval(sprintf('Pathname%d',i))
output_i=call_function(ipath)
end
where I have previously defined ipath as some string, for example Pathname1='\home\dir1\'; Pathname2='\home\dir2\'; Pathname3='\home\dir3\'; ... and so on.
And this works, but I want to also change the name of the output_i. That is, I would like to have output_1, output_2, etc., but I have failed until now.
I have tried several things using eval(), but nothing seems to work. I have also tried things like sprintf('output%d',i)=call_function(ipath)
but that doesn't work either. Does anybody have any ideas?
Thank you very much

Réponses (3)

Walter Roberson
Walter Roberson le 9 Jan 2013

Jason Ross
Jason Ross le 9 Jan 2013
If you are trying to process a series of files in a directory, there are a few examples here:
  1 commentaire
Clara
Clara le 10 Jan 2013
Hello Jason, First of all, thanks for answering. I read the links you put. I don't fully comprehend the dangers of eval(). I don't see the problem with the example in the link. But, if I should avoid eval(), do you have any ideas on what could be an alternative solution to my original question?
Thanks,

Connectez-vous pour commenter.


Thorsten
Thorsten le 9 Jan 2013
This should do the job:
eval(['output' int2str(i) ' = call_function(ipath);'])
or
eval(['output' int2str(i) ' = call_function(Pathname' int2str(i) ');'])
A better alternative, because faster and more readable, would be to get rid of the eval by using something like
output(i) = call_function(pathname(i));
  1 commentaire
Clara
Clara le 10 Jan 2013
Modifié(e) : Clara le 10 Jan 2013
This works perfectly! =) Thank you very much for your help.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by