Export martrix to excel in Loop
조회 수: 2 (최근 30일)
이전 댓글 표시
I have a FOR loop in my code and need to save Result ( vertcat of A and B ) in ONE Excel file in new Row(every columns are same) ,but MATLAB save them (each step) in new Excell file !
for Example:
for i=1:5
A=ones(2,5);
B=zeros(3,5);
xlswrite('testdata.xls',[A;B]);
i=i+1;
end
can you help me
댓글 수: 6
dpb
2014년 11월 23일
편집: dpb
2014년 11월 23일
Just because the limitations on the number of rows or columns is greater than the limit, that doesn't necessarily mean Excel has any more system memory than does Matlab...I'd guess 48GB is likely going to bring it to its knees as well...or even if not if it actually will try to page, virtual memory paging will kill you. I don't really think Excel is any "more smarter" than Matlab will be on handling this much data. I don't have 64-bit OS so can't really test it, but just sayin'...
채택된 답변
Image Analyst
2014년 11월 23일
If you can't fit the 1,000,000 x 6,000 array (48 GB) in memory, then you have to use ActiveX to send it to Excel. See attached demo.
댓글 수: 6
Image Analyst
2014년 11월 27일
Isay, I don't know why it does that - according to the help it should not. But try this - it works:
delete('testdata.xls'); % Delete any prior file.
for i=1:5
A=ones(2,5);
B=zeros(3,5);
numberOfRows = size(A, 1) + size(B, 1);
thisRow = (i-1)*numberOfRows + 1
cellReference = sprintf('A%d:E%d', thisRow, thisRow + numberOfRows-1)
xlswrite('testdata.xls',[A;B], cellReference);
end
추가 답변 (1개)
Moh
2014년 11월 27일
try
idx = 0;
for i=1:5
A=ones(2,5);
B=zeros(3,5);
[C,D]=size([A;B]);
xlswrite('testdata.xls',[A;B],1,strcat('A',num2str(1+idx)));
idx = idx+C;
end
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 ActiveX에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!