Filter löschen
Filter löschen

Unwanted quotation marks when appending a table in pdf report

8 Ansichten (letzte 30 Tage)
Alexandre
Alexandre am 10 Mai 2024
Kommentiert: Alexandre am 10 Mai 2024
Hi,
I'm struggling with MATLAB Report Generator to append a table in a pdf. My table has string and float values. In the following code, mltable is displayed without quotation marks in MATLAB terminal but if I append it my pdf report, I get :
I looked at all the properties of mltableObj but couldn't find anything to get rid of the quotation marks. Any suggestion? Should I use another object and/or function?
Thanks in advance!
clear all
clc
import mlreportgen.dom.*
import mlreportgen.report.*
d = Report('myMATLABTable','pdf');
% Define the data
variableNames = {'p_solMaxPower_MW', 'p_batNomVoltage_V', 'p_batNomPower_MW'};
descriptions = {'Maximum Solar Power [MW]', 'Battery Nominal Voltage [V]', 'Battery Nominal Power [MW]'};
values = [10.0, 1000.0, 1.0];
% Convert cell arrays to character arrays
variableNames = char(variableNames);
descriptions = char(descriptions);
% Create and append the table
mltable = table(variableNames, descriptions, values', 'VariableNames', {'Name', 'Description', 'Value'});
mltableObj = MATLABTable(mltable);
mltableObj.Border = "solid";
mltableObj.BorderWidth = "1px";
mltableObj.ColSep = "solid";
mltableObj.RowSep = "solid";
mltableObj.HeaderRule = [];
mltableObj.HeaderRule.Border = 'none';
tbodyObj = mltableObj.Body;
tbodyObj.TableEntriesStyle = {Color('blue')};
tbodyObj.TableEntriesHAlign = 'center';
append(d,mltableObj);
close(d);
rptview(d);

Antworten (1)

Adam Danz
Adam Danz am 10 Mai 2024
Bearbeitet: Adam Danz am 10 Mai 2024
I don't know whether there is any report generator wizardry that addresses this but a simple solution is to convert the cell-strings or string arrays to categorical values instead of char. You'll also need to ensure that the vectors are column vectors in the table() inputs.
% Convert cell arrays to character arrays
variableNames = categorical(variableNames);
descriptions = categorical(descriptions);
% Create and append the table
mltable = table(variableNames(:), descriptions(:), values(:), 'VariableNames', {'Name', 'Description', 'Value'});
  1 Kommentar
Alexandre
Alexandre am 10 Mai 2024
So I glad I came here. In MATLAB terminal, there is no difference but the report generator loves it. Thank you very much!

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Tables finden Sie in Help Center und File Exchange

Produkte


Version

R2022a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by