Info
Diese Frage ist geschlossen. Öffnen Sie sie erneut, um sie zu bearbeiten oder zu beantworten.
How to write several results in the same sheet of a Xls file ?
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
As a matter of fact I would like to obtain some results which are related to each other . I would like to compare them to each other but in the same sheet. It can be easily write the "data" from workspace to a xls file as follow
>> xlswrite('C:\path\filename.xls',data, 'Name of sheet');
right now my question is that, if I want to put new result in the same sheet but I do not want to lose the first result also, what should I do?
the dimension of the first result is not clear (for example it can be a matrix 4*4)
and the second result also, (it can be a matrix 6*6)
0 Kommentare
Antworten (4)
Rick Rosson
am 30 Aug. 2011
In the following code, I am assuming that your data is stored in arrays A, B, C, and D of various sizes:
filename = 'C:\mypath\myfile.xls';
sheet = 'mySheet';
row = 1;
xlswrite(filename,A,sheet,['A' num2str(row) ] );
row = row + size(A,1) + 3;
xlswrite(filename,B,sheet,['A' num2str(row) ] );
row = row + size(B,1) + 3;
xlswrite(filename,C,sheet,['A' num2str(row) ] );
row = row + size(C,1) + 3;
xlswrite(filename,D,sheet,['A' num2str(row) ] );
row = row + size(D,1) + 3;
HTH.
Rick
4 Kommentare
Fangjun Jiang
am 30 Aug. 2011
Good catch, Andrei! I've been used to mixed case but I copied Rick's code.
Fangjun Jiang
am 30 Aug. 2011
If it's easy to combine all the data into one, then I recommend combining them first and then write.
data1=rand(4,4);
data2=magic(4);
xlswrite('test.xls',[data1;data2],'SheetName');
Or you can write to xls file multiple times, use Range to specify the position on the spreadsheet.
xlswrite(File,Data,Sheet, Range)
You can use size(data1) to get the size of your data.
2 Kommentare
Fangjun Jiang
am 30 Aug. 2011
I don't fully understand your comment. But anyway, Rick's solution should work out for you if you have hundreds of matrices to write.
Chirag Gupta
am 30 Aug. 2011
You can do this accurately, if you know the dimensions of the results.
Otherwise, if you have good idea for maximum size of the result you should still be able to do this fairly accurately:
xlswrite('filename',data,'MyResultsSheet','A1'); % Write this result to the first cell of the sheet
% Assuming that the data max size is going to be 10 x 10
xlswrite('filename',data,'MyResultsSheet','K1');
0 Kommentare
Andrei Bobrov
am 30 Aug. 2011
A=randi(4,3),B=randi(5,4,6),C=randi(7,3,8),D=randi(70,4,3)
Am = {A B C D}
N = cumsum([1 cellfun('size',Am(1:end-1),1)+1])
for i1 = 1:numel(Am)
xlswrite('C:\path\filename.xls',Am{i1}, 'Name of sheet',['A',num2str(N(i1))]);
end
1 Kommentar
Diese Frage ist geschlossen.
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!