How to import data from MATLAB into Excel, and then have Excel save the data
Show older comments
Hi everyone,
I have extracted some features from images and they can be seen in the command window. There are too many blob information which needs to be saved in excel file from MATLAB command window.
Could anyone please help me how to save them in a excel file or text file automatically so that it can be used later on rather than running the process to see the values over and over unless I save them manually by copying and pasting them in text file / excel file.
Any help will be appreciated.
Answers (3)
Julia
on 12 Feb 2015
Hi,
there exists the command
xlswrite()
Does this suit your purpose?
4 Comments
Vito
on 12 Feb 2015
With dynamic update of data, you can use save (file) .... But I often use the database MSSQL.
fastinsert (conn, 'tablename', colnames, exdata)
These data can be easily imported into Excel.
Tania
on 13 Feb 2015
Vito
on 15 Feb 2015
The images do not, but the problem is clear. Excel is not suitable. As an example, monitoring Facebook.
% insert data
exdata = []; % dataset
.....
conn = database('facebook', '', '');
colnames = {'a', 'd'}
fastinsert(conn, 'RELATION', colnames, exdata)
......................
% get data
conn = database('facebook', '', '');
curs = exec(conn,['SELECT * From RELATION']);
curs=fetch(curs);
Set=curs.Data;
Create your database and get or set data.
Image Analyst
on 12 Feb 2015
Edited: Image Analyst
on 12 Feb 2015
0 votes
See my Excel demo. It uses ActiveX and will be a lot faster than xlswrite if you need to make multiple writes.
Another option is you could put your data into a table (if you have R2013b or later) and then call writetable().
10 Comments
Vito
on 13 Feb 2015
SQL allows update or add only the required data. For large volumes is the only option.
Tania
on 13 Feb 2015
Image Analyst
on 13 Feb 2015
Did you see the comments at the beginning of the file:
% Uses xlswrite1, available from the File Exchange
% http://www.mathworks.com/matlabcentral/fileexchange/10465-xlswrite1
Download that and it will work.
Image Analyst
on 13 Feb 2015
You have to create an array of data from your measurements structure array.
measurements = regionprops(labeledImage, 'FilledArea', 'EulerNumber', 'Extent', 'AspectRatio');
allFilledAreas = [measurements.FilledArea];
allEulerNumbers = [measurements.EulerNumber];
allExtents = [measurements.Extent];
allAspectRatios = [measurements.AspectRatio];
myData = [allFilledAreas, allEulerNumbers, allExtents, allAspectRatios];
xlswrite1(...........
Image Analyst
on 15 Feb 2015
You say that ultimately you want this "so that it can be used later on, rather than running the process to see the values" . If you want to save these variables simply to recall them later, then it's best you just use save() instead of Excel:
measurements = regionprops(labeledImage, 'FilledArea', 'EulerNumber', 'Extent', 'AspectRatio');
save(matFullFileName, measurements);
Then to recall, use load:
s = load(matFullFileName);
measurements = s.measurements;
Again, Excel would just complicate things.
Image Analyst
on 15 Feb 2015
Did you see where I said to not use Excel? It doesn't seem best for what you want to do.
Tania
on 19 Feb 2015
bim
on 1 Jan 2023
@Image Analyst: I packed the functionality for reading in a simple static class so it can be easily reused.
It will only read contiguous tables and for now only reads tables with columns with a single digit name (A-Z).
I have not benchmarked it against importdata yet.
Image Analyst
on 1 Jan 2023
OK, that's good. I also have a static class with a ton of functions for doing stuff in Excel, like formatting cells, etc. It's attached.
Md Iqbal
on 16 Oct 2020
0 votes
How to save data from matlab GUI edit text box to excel
1 Comment
Image Analyst
on 16 Oct 2020
From GUIDE, App Designer, or inputdlg()?
Have you tried writematrix() or writecell()?
Categories
Find more on Spreadsheets in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!