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

조회 수: 1 (최근 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
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)

추가 답변 (1개)

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}));
C = 3×1 cell array
{'a=0.3' } {'alpha=-0.89'} {'b=9' }
  댓글 수: 4
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에 대해 자세히 알아보기




Community Treasure Hunt

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

Start Hunting!

Translated by