extract coloumns from .mat file
    3 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
    Moazza
 am 29 Mai 2018
  
    
    
    
    
    Kommentiert: Moazza
 am 6 Jun. 2018
            I have a .mat file which consist of a 22253519x5 double. I need to extract first three coloums only and save them in another .mat file having 2253519x3 double data. All the rows are to be considered.
I have no clue about this. New to MATLAB. Any help would be appreciated.
0 Kommentare
Akzeptierte Antwort
  Walter Roberson
      
      
 am 29 Mai 2018
        The below would be easier if you only had one variable stored in the .mat file and you knew the name of the variable. The below code does not assume that there is only one variable and does not assume that the variables have any particular names; the code takes the first three columns of all of the variables that are present, and creates the new .mat file using all of the same variable names.
filename = 'YourFile.mat';
newfile = 'YourNewFile.mat';
datastruct = load(filename);
newstruct = structfun(@(M) M(:,1:3), datastruct, 'uniform', 0);
save(newfile, 'newstruct', '-struct');
6 Kommentare
  Walter Roberson
      
      
 am 1 Jun. 2018
				What is a c/h file ?
>> some_variable = rand(22253519,5);
>> save('YourFile.mat', 'some_variable');
>> filename = 'YourFile.mat';
newfile = 'YourNewFile.mat';
datastruct = load(filename);
newstruct = structfun(@(M) M(:,1:3), datastruct, 'uniform', 0);
>> save(newfile,'-struct','newstruct')
>> whos -file YourNewFile.mat
  Name                      Size                Bytes  Class     Attributes
    some_variable      22253519x3             534084456  double
Weitere Antworten (0)
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


