How to generate names?
    8 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
I want to make my code shorter.
I have this code:
Sheetname1=txt1{1,3};
Sheetname2=txt2{1,3};
Sheetname3=txt3{1,3};
Sheetname4=txt4{1,3};
Sheetname5=txt5{1,3};
Sheetname6=txt6{1,3};
instead there should be a for loop
for i=1:6
 Sheetname'write i'=txt'write i'{1,3};
end
how to :) ?
1 comentario
  Hassan F
 el 8 de En. de 2013
				Is there a specific reason why you implemented your script this way? Such a for loop will be slow and hard to read later on.
Respuestas (5)
  Hassan F
 el 8 de En. de 2013
        You can use eval
for i=1:6
 eval(['Sheetname' num2str(i) '=txt' num2str(i) '{1,3};'])
end
5 comentarios
  Jan
      
      
 el 8 de En. de 2013
				
      Editada: Jan
      
      
 el 8 de En. de 2013
  
			I do think that it matters. Programmers get used to use methods they are used to use. The more EVAL you write, the more acceptable does this command look, because we are human.
Much better in theory, practice and from the viewpoint of training the brain to think in efficient ways:
Sheetname{1} = txt{1,3};
Sheetname{2} = txt{2,3};
Sheetname{3} = txt{3,3};
Sheetname{4} = txt{4,3};
Sheetname{5} = txt{5,3};
Sheetname{6} = txt{6,3};
Never include an index in the name of a variable. You would not include your current weight to your name also, because the inconveniences are obviously.
Kind regards, Jan70.6kg
  Hello kity
      
 el 8 de En. de 2013
        1 comentario
  Hassan F
 el 8 de En. de 2013
				
      Editada: Hassan F
 el 8 de En. de 2013
  
			See my answer http://www.mathworks.se/matlabcentral/answers/58253#answer_70475, but you should avoid this solution and use cells or other classes which suits your data the most.
  Azzi Abdelmalek
      
      
 el 8 de En. de 2013
        A=cell(1,6);
for ii=1:6
A{ii}=sprintf('Sheetname%d' , ii)
end
0 comentarios
  Image Analyst
      
      
 el 8 de En. de 2013
        My m-files are usually 2-3 thousand lines long. I never worry about saving a paltry 3 lines. Why do you care? If you want to use fewer variables, say use a cell array for Sheetname instead of 6 variables, then you could do that, but with only 6 variable, it's really no big deal. Now if you had dozens or hundred variables named like that (which we see sometimes).....then yes, you'd want an array, but I'm not going to ding you for only 6 uniquely named variables.
0 comentarios
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!






