How can i edit a .mat file

276 次查看(过去 30 天)
I have a .mat file name.mat. It contains information such as and when I open it the import wizard opens. now say the data in the import wizard is as follows:
|var_name | Ixx | Iyy | Izz
A 1 2 3
B 4 5 6
C 7 8 9
Now say I wanted to go in and update the numbers to 2-10 -- how do I do this? Or, how can I create a .mat file?
I tried using the import wizard and creating my own, but when I do, it doesn't include having the variable names in the same table because they're letters and not numbers.
Thanks

采纳的回答

Image Analyst
Image Analyst 2013-1-11
You have to read it all in:
storedStructure = load('name.mat');
A = storedStructure.A;
B = storedStructure.B;
C = storedStructure.C;
Then change things:
A = [1 2 3];
B = rand(1,3);
C = randi(100, 3);
Then save it back:
save('name.mat', 'A', 'B', 'C');
  2 个评论
Arthur Vieira
Arthur Vieira 2021-4-30
If I have variables in my workspace that I don't want to loose (i.e. can't load the .mat in), how can I update what's in the .mat file? Including deleting a variable within a .mat file? I could load them with:
var = load('myData.mat');
But that makes 'var' a structure. And you can't save variables within structures for some reason. I'm confused on how you're meant to use .mat files.
Steven Lord
Steven Lord 2021-4-30
After you load the variables from the MAT-file into a struct array and modify the fields of that struct, call save with the '-struct' option and the name of the struct array.
cd(tempdir)
v = struct('x', 1:10, 'y', @sin, 'z', "abracadabra");
save('mymatfile.mat', '-struct', 'v')
whos -file mymatfile.mat
Name Size Bytes Class Attributes x 1x10 80 double y 1x1 32 function_handle z - 158 string
The MAT-file does not contain the struct v but contains three variables, one for each field in v.

请先登录,再进行评论。

更多回答(1 个)

Azzi Abdelmalek
Azzi Abdelmalek 2013-1-11
编辑:Azzi Abdelmalek 2013-1-11
a=10; v=magic(4)
save filename a v
To load your file
load filename
  2 个评论
Kim Nguyen
Kim Nguyen 2013-1-11
this doesnt solve the problem of having letters, also i already have a data file, like an excel that i would like to load into matlab which is part of the problem. it seperates the character string from the number and therefore does not do what i need
Azzi Abdelmalek
Azzi Abdelmalek 2013-1-11
编辑:Azzi Abdelmalek 2013-1-11
fid=fopen('file1.txt')
x=textscan(fid,'%s %f %f %f')
fclose(fid)
out=cell2mat(x(2:end))
% to get the characters
d=x(1)
lett=d{:}

请先登录,再进行评论。

类别

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