MATLAB Answers

0

How to save multiple tables in seperate sheets in Excel

Asked by Victoria on 13 Jul 2018
Latest activity Answered by Peter Perkins
on 3 Aug 2018
Hello - I am running multiple files in MATLAB and would like to save the outputs from regionprops into one large Excel file. With my current code, which is below, it will only save as seperate .txt files. Help is appreciatied - thank you!
figure,imshow(BW);
stats = regionprops(BW,'MajorAxisLength');
t = struct2table(stats);
path = 'C:\Users\Test' ;
filename = [path, filesep, 'GFP',num2str(k)] ;
writetable(t,filename);
end
k stands for k=1:length(Files)

  0 Comments

Sign in to comment.

2 Answers

Answer by Christopher Wallace on 13 Jul 2018

Hi Victoria,
Have you looked into the documentation for the Matlab command 'xlswrite' ?
https://www.mathworks.com/help/matlab/ref/xlswrite.html
?
You should be able to do something along the lines of:
xlswrite(filename, data, 'Sheet1')
But since the xlswrite function only accepts two-dimensional numeric, character array, or string array, or, if each cell contains a single element, a cell array, you'll have to reformat your data before putting it in.
?
If you'd like to add a new sheet just change the name of the sheet in the xlswrite parameters. If it the sheet doesn't exist it will be created.
?
Best Regards,
Chris

  9 Comments

Is 'MajorAxisLength' the only property you're wanting to record in the file? So you would have 'MajorAxisLength' in the top row followed by the data for each image in a new row below?
Consider taking the write function out of the for-loop and adding k to the stats variable
stats(k) = regionprops(BW,'MajorAxisLength');
then do the write once the for-loop is complete.
adding Paolo's answer in as well you would end up with something like:
figure,imshow(BW);
stats(k) = regionprops(BW,'MajorAxisLength');
t = struct2table(stats);
end
path = 'C:\Users\Test';
writetable(t,fullfile(path,filename));
I got this error when I tried that:
Unable to perform assignment because the indices on the left side are not compatible with the size of the right side.
And yes, Major Axis Length is the only one I'd like right now.
Thanks for the help

Sign in to comment.


Answer by Peter Perkins
on 3 Aug 2018

Victoria, I really recommend that you not use xlswrite. As Paolo suggests, writetable can definitely write to sheets in an Excel file.

  0 Comments

Sign in to comment.