Create an extra row in a table that show the means of all columns (but without any extra headings)
    6 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    Jason
      
 el 4 de Jul. de 2025
  
    
    
    
    
    Comentada: Chuguang Pan
      
 el 5 de Jul. de 2025
            Hello, I have a table that I have created and display it in text area

  This is my code:    
params = ["ROI_L";"ROI_C";"ROI_R"];
tbl = table(params,FWHMX,FWHMY,FWHM2D,CenInt);
str = formattedDisplayText(tbl);
str = regexprep(str,'</?strong>','');
ReportMessage(app,str);            % My own function, see below
At the bottom I have attempted to add the means of each column by doing this:
   % Get Means
   M = varfun(@mean, tbl, 'InputVariables', @isnumeric);          
   M1=table2cell(M) 
   M1=[{'Mens:'},M1]  
   str = formattedDisplayText(M1)
   str = regexprep(str,'</?strong>','');
   ReportMessage(app,str);               % My own fucntion, see below
But its wrapping and not aligned to the table.  The same thing happens if I DONT convert the table to a cell array via (as well as adding exctra headings
   M1=table2cell(M) 
   M1=[{'Mens:'},M1]    
This is how it looks without the table2cell step:

Is there a way in table format to get the means of the columns (but without any column header)
heres my report message function
    function ReportMessage(app,msg)
            currString=get(app.MessagesTextArea,'Value');
            %currString=[{char(msg)};currString];  %add to top of message box
            currString=[currString; {char(msg)}];  %add to bottom of message box
            app.MessagesTextArea.Value=currString;
            drawnow;
            scroll(app.MessagesTextArea,'bottom');
        end
2 comentarios
  Walter Roberson
      
      
 el 4 de Jul. de 2025
				Perhaps something like,
params = ["ROI_L";"ROI_C";"ROI_R"];
tbl = table(params,FWHMX,FWHMY,FWHM2D,CenInt);
M = ["Means", table2cell(varfun(@mean, tbl, 'InputVariables', @isnumeric))];
tbl{end,:} = M;
str = formattedDisplayText(tbl);
str = regexprep(str,'</?strong>','');
which should add a row with name "Means" to the end of the table.
Respuesta aceptada
  Chuguang Pan
      
 el 4 de Jul. de 2025
        
      Editada: Chuguang Pan
      
 el 4 de Jul. de 2025
  
      params = ["ROI_L";"ROI_C";"ROI_R"];
FWHMX = [3.09;3.14;3.36];
FWHMY = [3.00;2.92;2.88];
FWHM2D = [3.05;3.03;3.12];
CenInt = [217;212;162];
tbl = table(params,FWHMX,FWHMY,FWHM2D,CenInt);
meanTbl = mean(tbl(:,2:end));
meanTbl.params = "Mean";
newTbl = [tbl;meanTbl];
str = formattedDisplayText(newTbl,"NumericFormat","bank")
2 comentarios
Más respuestas (0)
Ver también
Categorías
				Más información sobre Data Type Conversion en Help Center y File Exchange.
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


