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

3 views (last 30 days)
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 Comment
Todd Flanagan
Todd Flanagan on 20 Jan 2011
Hi Pepa. I deleted your "Thanks" answer and added it as a comment to Andreas' answer.

Sign in to comment.

Accepted Answer

Andreas Goser
Andreas Goser on 20 Jan 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 Comments
Doug Hull
Doug Hull on 20 Jan 2011
EVAL *is* EVIL! If you agree, vote for the alternative answer below.

Sign in to comment.

More Answers (3)

Doug Hull
Doug Hull on 20 Jan 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 on 20 Jan 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 on 26 Jan 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

Categories

Find more on Creating and Concatenating Matrices in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!