Create an extra row in a table that show the means of all columns (but without any extra headings)
2 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!