Clear Filters
Clear Filters

Unwanted quotation marks when appending a table in pdf report

8 views (last 30 days)
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);

Answers (1)

Adam Danz
Adam Danz on 10 May 2024
Edited: Adam Danz on 10 May 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 Comment
Alexandre
Alexandre on 10 May 2024
So I glad I came here. In MATLAB terminal, there is no difference but the report generator loves it. Thank you very much!

Sign in to comment.

Categories

Find more on Tables in Help Center and File Exchange

Products


Release

R2022a

Community Treasure Hunt

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

Start Hunting!