Main Content

MATLAB table からのテーブルの作成

MATLAB® table から DOM API テーブルを作成するには、mlreportgen.dom.MATLABTable オブジェクトを使用します。MATLAB table の DOM 表現は、DOM の形式的 table の構造をもちます。形式的テーブルの作成を参照してください。MATLABTable のヘッダーには、MATLAB table の列名が含まれます。MATLABTable の本体には、MATLAB table の行と要素が含まれます。

MATLAB の table が行名をもつ場合、MATLABTable オブジェクトの最初の列に行名が含まれます。MATLAB では、行名の列はラベルをもちません。MATLABTable オブジェクトでは、ヘッダーの最初の要素のコンテンツを変更することにより、行名列のラベルを指定できます。MATLABTable オブジェクトの RowNamesRule プロパティを true に設定することにより、行名列のラベルの下の行を指定できます。

レポート内で作成可能な他の種類のテーブルについては、作成するテーブルの種類の選択を参照してください。

MATLAB table からのテーブルの作成

この例では、行名をもつ MATLAB table から DOM table を作成します。この例では、DOM table を含む 2 つのレポートを生成します。最初のレポートでは、テーブルの行名の列にラベルがありません。2 番目のレポートでは、行名の列にラベルがあります。

患者の年齢、体重、身長を表示する MATLAB table を作成します。RowNames オプションを使用して、患者の姓で各行を識別します。

LastName = {'Sanchez';'Johnson';'Lee';'Diaz';'Brown'};
Age = [38;43;38;40;49];
Weight = [176;163;131;133;119];
Height = [71;69;64;67;64];
mltable = table(Age,Weight,Height,'RowNames',LastName)
mltable=5×3 table
               Age    Weight    Height
               ___    ______    ______

    Sanchez    38      176        71  
    Johnson    43      163        69  
    Lee        38      131        64  
    Diaz       40      133        67  
    Brown      49      119        64  

この MATLAB table には 5 つの行と 3 つの列があります。行名は table の一部ではありません。それらは table のプロパティに格納されます。

MATLAB table から mlreportgen.dom.MATLABTable オブジェクトを作成します。

import mlreportgen.dom.*
mltableObj = MATLABTable(mltable);

ドキュメントを作成し、MATLABTable オブジェクトをドキュメントに追加します。ドキュメントを閉じて表示します。

d = Document('MyMATLABTable1','docx');
append(d,mltableObj);
close(d);
rptview(d);

生成されたレポートのテーブルは次のようになります。

DOM table は、ヘッダーと本体をもつ形式的テーブルです。このテーブルには 5 つの行と 4 つの列があります。最初の列は、MATLAB table の行名で構成されています。

レポートを再度生成します。今回は行名の列にラベルを使用します。ラベルを指定するには、テーブル ヘッダー行の最初のエントリ内の空のテキストをラベル テキストに置き換えます。ラベルの下に線を引くには、MATLABTable オブジェクトの RowNamesRule プロパティを true に設定します。

LastName = {'Sanchez';'Johnson';'Lee';'Diaz';'Brown'};
Age = [38;43;38;40;49];
Weight = [176;163;131;133;119];
Height = [71;69;64;67;64];
mltable = table(Age,Weight,Height,'RowNames',LastName);
import mlreportgen.dom.*
mltableObj = MATLABTable(mltable);
th = mltableObj.Header;
thentry11 = entry(th,1,1);
thentry11.Children(1).Children(1).Content = 'Names';
mltableObj.RowNamesRule = true;
d = Document('MyMATLABTable2','docx');
append(d,mltableObj);
close(d);
rptview(d);

生成されたレポートのテーブルは次のようになります。

MATLAB table から作成されたテーブルの書式設定

既定では、MATLABTable オブジェクトから生成されたテーブルは、MATLAB のテーブルのように書式設定されます。テーブルの外観をカスタマイズするには、他のタイプのテーブルに使用するのと同じ方法を使用できます。

  • 既定の HTML、Word、または PDF のテンプレートのスタイル シートで既定のスタイルを更新します。MATLABTable オブジェクトの既定の StyleName"rgMATLABTable" です。

  • StyleName プロパティをカスタム スタイルに設定します。

  • 書式プロパティを使用するか、テーブルまたはテーブル セクションでオブジェクトを書式設定します。

テーブルの書式設定を参照してください。

MATLAB Table のセクションの書式設定

この例では、MATLAB table から作成された DOM テーブルのセクションを書式設定する方法を示します。

テーブル ヘッダーの書式設定

この例では、列見出しをイタリックにします。

ヘッダーにアクセスするには、mlreportgen.dom.MATLABTable オブジェクトの Header プロパティを使用します。この例では、ヘッダーを表す mlreportgen.dom.TableHeader オブジェクトの Style プロパティに mlreportgen.dom.Italic 書式オブジェクトを追加します。

import mlreportgen.dom.*
d = Document('myMATLABTable','pdf');

Age = [38;43;38;40;49];
Height = [71;69;64;67;64];
Weight = [176;163;131;133;119];
mltable = table(Age,Weight,Height);

mltableObj = MATLABTable(mltable);
mltableObj.Header.Style = [mltableObj.Header.Style {Italic(true)}];

append(d,mltableObj);
close(d);
rptview(d);

テーブル本体の書式設定

この例では、テーブル本体の最初の行のエントリを青色にします。

テーブル本体にアクセスするには、mlreportgen.dom.MATLABTable オブジェクトの Body プロパティを使用します。本体の行にアクセスするには、行を表す mlreportgen.dom.TableRow オブジェクトの row メソッドを使用します。この例では、最初の行を表す TableRow オブジェクトの Style プロパティに mlreportgen.dom.Color 書式オブジェクトを追加します。

import mlreportgen.dom.*
d = Document('myMATLABTable','pdf');

Age = [38;43;38;40;49];
Height = [71;69;64;67;64];
Weight = [176;163;131;133;119];
mltable = table(Age,Weight,Height);

mltableObj = MATLABTable(mltable);
tbody = mltableObj.Body;
row1 = row(tbody,1);
row1.Style = [row1.Style {Color('blue')}];

append(d,mltableObj);
close(d);
rptview(d);

参考

関連するトピック