How can I write both alphabets and numbers in .mat file on same cell?
4 views (last 30 days)
Show older comments
ANANTA BIJOY BHADRA
on 23 May 2022
Answered: Image Analyst
on 23 May 2022
I need to save the data in .mat file. But the data values has names such as a=0.3, b=9, alpha=-0.89. In the cell, both the name of the variable and the data value should be present. How can I do that? Also I tried to save the data in xls file but when I try to open, it says the file format and extension of the file don't match. The file could be corrupter or unsafe. How can I solve this problem also?
0 Comments
Accepted Answer
Image Analyst
on 23 May 2022
a=0.3
b=9;
alpha=-0.89
unUsedVariable = 345;
x = 40;
% Save a, b, and alpha ONLY in variables.mat
save('variables.mat', 'a', 'b', 'alpha');
% Save a, b, and alpha ONLY in variables.xlsx. Save to a cell array first.
ca = {'a', a;
'b', b;
'alpha', alpha};
writecell(ca, 'variables.xlsx');
% Open in in Excel (if using Windows)
winopen('variables.xlsx')
0 Comments
More Answers (1)
Voss
on 23 May 2022
Edited: Voss
on 23 May 2022
If I understand the situtation, you have a mat file with some variables and you want to write those variables' names and values in the form "a=0.3", etc., to an xls file. If that's accurate, here's something that will work for scalar numeric variables, as given in the question. If you have other sizes/types, you'll need to do something more sophisticated
S = load('vars.mat')
S_fields = fieldnames(S);
n_fields = numel(S_fields);
C = cell(n_fields,1);
for ii = 1:n_fields
C{ii} = sprintf('%s=%g',S_fields{ii},S.(S_fields{ii}));
end
C
writecell(C,'vars.xls')
4 Comments
Voss
on 23 May 2022
If you want the variable names and values to show up in the excel file like 'a=0.3', you can save the mat file first and then use the code in my answer.
See Also
Categories
Find more on Workspace Variables and MAT-Files 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!