How can i edit a .mat file
    164 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
    Kim Nguyen
 il 11 Gen 2013
  
    
    
    
    
    Commentato: Steven Lord
    
      
 il 30 Apr 2021
            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
0 Commenti
Risposta accettata
  Image Analyst
      
      
 il 11 Gen 2013
        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 Commenti
  Arthur Vieira
      
 il 30 Apr 2021
				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
    
      
 il 30 Apr 2021
				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
The MAT-file does not contain the struct v but contains three variables, one for each field in v.
Più risposte (1)
  Azzi Abdelmalek
      
      
 il 11 Gen 2013
        
      Modificato: Azzi Abdelmalek
      
      
 il 11 Gen 2013
  
      a=10; v=magic(4)
save filename a v
To load your file
 load filename
2 Commenti
  Azzi Abdelmalek
      
      
 il 11 Gen 2013
				
      Modificato: Azzi Abdelmalek
      
      
 il 11 Gen 2013
  
			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{:}
Vedere anche
Categorie
				Scopri di più su Workspace Variables and MAT Files in Help Center e File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!