フィルターのクリア

can use xlswrite in for loop without overwriting?

5 ビュー (過去 30 日間)
sandy
sandy 2013 年 8 月 13 日
コメント済み: Anand Ganesan 2020 年 4 月 6 日
i need to write values of every iteration from loop and get saved in excel file one by one order..its like appending..is it possible in matlab?
  2 件のコメント
SANDEEP KUMAR
SANDEEP KUMAR 2018 年 6 月 20 日
編集済み: SANDEEP KUMAR 2018 年 6 月 20 日
Yes it is possible. follow the code, Here objective is writing these variables value in excel sheet.%%CODE START FROM HERE%%
x1=[1,2,3,4,5]; x2=[5,6,7,8,9];
for ii=1:5 X1=x1(1,ii); X2=x2(1,ii); filename = 'Results.xlsx'; Variables= {X1,X2}; sheet = 1; xlRange= sprintf( 'A%s',num2str(ii) ); xlswrite(filename,Variables,sheet,xlRange) end %% Arranging row wise
Image Analyst
Image Analyst 2018 年 6 月 20 日
Sandeep, can you put your answer (to this 5 year old question) down in the Answers section below (so you can get credit for it)? Though please format your code first.

サインインしてコメントする。

回答 (2 件)

David Sanchez
David Sanchez 2013 年 8 月 13 日
With xlswrite, you can define the cell where your data will be written, like in the following example, that write mixed text and numeric data to testdata2.xls, starting at cell E1 of Sheet1:
d = {'Time','Temperature'; 12,98; 13,99; 14,97};
xlswrite('testdata2.xls', d, 1, 'E1')
Change the destination cell dynamically in your for-loop. Example:
for k=1:20
x = rand;
my_cell = sprintf( 'A%s',num2str(k) );
xlswrite('my_xls.xls',x,my_cell);
end
  2 件のコメント
sandy
sandy 2013 年 8 月 13 日
Anand Ganesan
Anand Ganesan 2020 年 4 月 6 日
To get it to write into one column:
for k=1:3
x = rand;
my_cell = sprintf( 'A%s',num2str(k) )
my_cell=[my_cell ':' my_cell];
xlswrite('my_xls.xls',x,my_cell);
end
for k=1:3
x=rand
my_cell=sprintf('A%s,num2str(k)')
my_cell=[my_cell ':' my_cell]
xlswrite('my_xls.xls',x,my_cell)
end

サインインしてコメントする。


Image Analyst
Image Analyst 2013 年 8 月 13 日
編集済み: Image Analyst 2018 年 6 月 20 日
You definitely don't want to use xlswrite() in a loop of more than about 3 iterations unless you are willing to wait forever. Use xlswrite1() in the File Exchange, where you can use ActiveX - it will be so much faster.
  3 件のコメント
Image Analyst
Image Analyst 2013 年 8 月 14 日
Yes it can, if you specify different destination cells. If you specify cells with entries in them already then, of course, those would get overwritten. The problem with your code is that you are not specifying the destination cell(s) location in the workbook so they all get written starting at cell A1 - the upper left.
sandy
sandy 2013 年 8 月 14 日
I use s (k,:) instead of s in my code..showing error as, variable s appears to change size on every loop iteration.consider preallocating for speed..how to come over this error...?

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeSpreadsheets についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by