varfun changes the variable names in the table
    15 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
    decimate_func = @(x) x(1:data_step:end);
    T1 = varfun(decimate_func,T);
    T2 = T(1:data_step:end,:);
T is a table of double and string columns. Expected T1 to be te same as T2, however T1 modifies the column names by adding a "Fun_" to the variable names. why?
0 Kommentare
Akzeptierte Antwort
  dpb
      
      
 am 18 Aug. 2022
        
      Bearbeitet: dpb
      
      
 am 20 Aug. 2022
  
      Because you operated on it with a function and so it is NOT the same variable any more -- that is documented behavior.  varfun doesn't know (or care) that the function only selects a given subset of the same variable and doesn't modify it.  It ((varfun, that is) also doesn't try to parse the function name (since so often one uses anonymous functions amongst other reasons) to add to the variable name; it just uses 'Fun_' as the arbitrary identifier.
You can manually rename the variables if you wish, of course...
T2.Properties.VariableNames=T.Properties.VariableNames;     % put original names back
0 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
				Mehr zu Tables finden Sie in Help Center und File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

