How can I write both alphabets and numbers in .mat file on same cell?

4 次查看(过去 30 天)
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?

采纳的回答

Image Analyst
Image Analyst 2022-5-23
You can list the variables you want to save as arguments in the save function
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')

更多回答(1 个)

Voss
Voss 2022-5-23
编辑:Voss 2022-5-23
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 = struct with fields:
a: 0.3000 alpha: -0.8900 b: 9
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
C = 3×1 cell array
{'a=0.3' } {'alpha=-0.89'} {'b=9' }
writecell(C,'vars.xls')
  4 个评论
Voss
Voss 2022-5-23
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.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Workspace Variables and MAT-Files 的更多信息

产品


版本

R2021a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by