フィルターのクリア

Unwanted quotation marks when appending a table in pdf report

8 ビュー (過去 30 日間)
Alexandre
Alexandre 2024 年 5 月 10 日
コメント済み: Alexandre 2024 年 5 月 10 日
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);

回答 (1 件)

Adam Danz
Adam Danz 2024 年 5 月 10 日
編集済み: Adam Danz 2024 年 5 月 10 日
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 件のコメント
Alexandre
Alexandre 2024 年 5 月 10 日
So I glad I came here. In MATLAB terminal, there is no difference but the report generator loves it. Thank you very much!

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeTables についてさらに検索

製品


リリース

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by