Azzera filtri
Azzera filtri

How can I use use the index in a FOR loop in a string?

1 visualizzazione (ultimi 30 giorni)
I need use cycle FOR for String (for Excel write).
For example:
N=10;
for i = 1:N-1
xlswrite('test.xls',F0,brd{i},'A1') %I need change 1 to 2...N
end
How can I do that?
  1 Commento
Todd Flanagan
Todd Flanagan il 20 Gen 2011
Hi Pepa. I deleted your "Thanks" answer and added it as a comment to Andreas' answer.

Accedi per commentare.

Risposta accettata

Andreas Goser
Andreas Goser il 20 Gen 2011
While I suggest using the XLSWRITE syntax,
xlswrite('test.xls',F0,brd{i},'A1:A10')
this may just an example code. I personally often work with the EVAL command:
N=10;
for i = 1:N-1
eval(['xlswrite(''test.xls'',F0,brd{i},''A', num2str(i), ''');'])
end
I think there are other options too.
  5 Commenti
Doug Hull
Doug Hull il 20 Gen 2011
EVAL *is* EVIL! If you agree, vote for the alternative answer below.

Accedi per commentare.

Più risposte (3)

Doug Hull
Doug Hull il 20 Gen 2011
I think this is the cleanest way to do this.
N=10;
for i = 1:N-1
colName = ['A' num2str(i)];
xlswrite('test.xls',F0,brd{i}, colName) %I need change 1 to 2...N
end

Walter Roberson
Walter Roberson il 20 Gen 2011
Or for those who prefer the lower-overhead sprintf:
N=10;
for i = 1:N-1
xlswrite('test.xls',F0,brd{i}, sprintf('A%d',i))
end

Richard de Garis
Richard de Garis il 26 Gen 2011
The above solutions are elegantly simple and will serve your current need perfectly. If in the future you require to iterate along Excel columns and/or change the size of the Excel range, I just published a function that will enable you to do that. http://www.mathworks.com/matlabcentral/fileexchange/30180-calculate-excel-range

Categorie

Scopri di più su Creating and Concatenating Matrices in Help Center e File Exchange

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by