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

2 次查看(过去 30 天)
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 个评论
Todd Flanagan
Todd Flanagan 2011-1-20
Hi Pepa. I deleted your "Thanks" answer and added it as a comment to Andreas' answer.

请先登录,再进行评论。

采纳的回答

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

请先登录,再进行评论。

更多回答(3 个)

Doug Hull
Doug Hull 2011-1-20
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 2011-1-20
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 2011-1-26
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

类别

Help CenterFile Exchange 中查找有关 Logical 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by