最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

Report Generator の作成

この例では、魔方陣を説明し図解する単純なレポートの作成方法を示します。魔方陣とは、列、行および対角のいずれについても、合計が同じ数字になる行列です (MATLAB® ドキュメンテーションの関数 magic のリファレンスを参照してください)。

メモ

完全なコードの例は、詳細な手順の後に含まれます。

  1. 基底クラスをインポートします。

    レポート API オブジェクトと DOM API オブジェクトの完全修飾名を使用する必要をなくすには、次のステートメントを使用します。たとえば、mlreportgen.report.Report を使用する代わりに、Report を使用できます。

    import mlreportgen.report.* 
    import mlreportgen.dom.* 
  2. レポート オブジェクトを作成します。

    レポート オブジェクトを作成します。ファイル名として 'magic' を、レポートのタイプとして 'html' を使用します。

    rpt = Report('magic','html'); 

    レポート全体に適用されるプロパティをカスタマイズするには、mlreportgen.report.Report を参照してください。

  3. タイトル ページを追加します。

    タイトル ページを作成して、ページのタイトル、サブタイトル、作成者を指定します。その後、タイトル ページをレポートに追加します。

    tp = TitlePage; 
    tp.Title = 'Magic Squares'; 
    tp.Subtitle = 'Columns, Rows, Diagonals: All Equal Sums'; 
    tp.Author = 'Albrecht Durer'; 
    add(rpt,tp); 

    タイトル ページのプロパティをさらにカスタマイズするには、mlreportgen.report.TitlePage を参照してください。

  4. 目次を追加します。

    既定の目次オブジェクトをレポートに追加します。

    add(rpt,TableOfContents); 
    

    目次をカスタマイズするには、mlreportgen.report.TableOfContents を参照してください。

  5. 章と節を追加します。

    序章の章オブジェクトを作成して、章タイトルを指定します。節を追加し、節に段落を追加して、節を章に追加します。別の節を作成して、節に段落を追加します。

    ch1 = Chapter; 
    ch1.Title = 'Introduction'; 
    sec1 = Section; 
    sec1.Title = 'What is a Magic Square?'; 
    para = Paragraph(['A magic square is an N-by-N matrix '... 
    'constructed from the integers 1 through N^2 '... 
    'with equal row, column, and diagonal sums.']); 
    add(sec1,para) 
    add(ch1,sec1) 
    sec2 = Section; 
    sec2.Title = 'Albrect Durer and the Magic Square'; 
    para = Paragraph([ ... 
    'The German artist Albrecht Durer (1471-1528) created '... 
    'many woodcuts and prints with religious and '... 
    'scientific symbolism. One of his most famous works, '... 
    'Melancholia I, explores the depressed state of mind '... 
    'which opposes inspiration and expression. '... 
    'Renaissance astrologers believed that the Jupiter '... 
    'magic square (shown in the upper right portion of '... 
    'the image) could aid in the cure of melancholy. The '... 
    'engraving''s date (1514) can be found in the '... 
    'lower row of numbers in the square.']); 
    add(sec2,para) 
    add(ch1,sec2) 

    章と節のカスタマイズについては、mlreportgen.report.Chaptermlreportgen.report.Section をそれぞれ参照してください。

  6. Figure を追加します。

    Figure ウィンドウでデューラーのイメージを作成します。MATLAB Figure でイメージを作成します。この Figure を序章の第 2 節に追加し、この章をレポートに追加します。

    durerImage=load(which('durer.mat'),'-mat'); 
    figure('Units','Pixels','Position',... 
    [200 200 size(durerImage.X,2)*.5 ... 
    size(durerImage.X,1)*.5 ]); 
    image(durerImage.X); 
    colormap(durerImage.map); 
    axis('image'); 
    set(gca,'Xtick',[],'Ytick',[],... 
    'Units','normal','Position',[0 0 1 1]); 
    add(sec2,Figure) 
    add(rpt,ch1) 
    close gcf 

    Figure についての詳細は、mlreportgen.report.Figure を参照してください。イメージについての詳細は、mlreportgen.report.FormalImage を参照してください。

  7. テーブルを追加します。

    もう 1 つ章オブジェクトを追加して、タイトルを指定します。10 行 10 列の魔方陣を作成する MATLAB コードを指定します。結果をテーブルに追加して、次のテーブル プロパティを設定します。

    • 行と列の区切り

    • テーブルの境界線

    • テーブル エントリの配置

    次に、テーブルを章に追加し、章をレポートに追加します。

    ch2 = Chapter(); 
    ch2.Title = sprintf('10 x 10 Magic Square'); 
    
    square = magic(10); 
    tbl = Table(square); 
    
    tbl.Style = {... 
        RowSep('solid','black','1px'),... 
        ColSep('solid','black','1px'),}; 
    tbl.Border = 'double'; 
    tbl.TableEntriesStyle = {HAlign('center')}; 
    
    add(ch2,tbl); 
    add(rpt,ch2); 
    

    テーブルについての詳細は、mlreportgen.dom.Table を参照してください。

  8. MATLAB Figure を章に追加します。

    もう 1 つ章オブジェクトを追加して、タイトルを指定します。25 行 25 列の魔方陣と色分けされた魔方陣の Figure を作成する MATLAB コードを指定します。次に、Figure オブジェクトを作成して、その高さ、幅、および表題を設定します。Figure を章に追加し、章をレポートに追加します。

    ch3 = Chapter(); 
    ch3.Title = sprintf('25 x 25 Magic Square'); 
    
    square = magic(25); 
    clf; 
    imagesc(square) 
    set(gca,'Ydir','normal')
    axis equal 
    axis tight 
    
    fig = Figure(gcf); 
    fig.Snapshot.Height = '4in'; 
    fig.Snapshot.Width = '6in'; 
    fig.Snapshot.Caption = sprintf('25 x 25 Magic Square'); 
    
    add(ch3,fig); 
    add(rpt,ch3); 
    delete(gcf) 
    

    Figure についての詳細は、mlreportgen.report.Figure を参照してください。

  9. レポートを閉じて実行します。

    close(rpt)
    rptview(rpt)

完全なコードは次のとおりです。

import mlreportgen.report.* 
import mlreportgen.dom.* 
rpt = Report('magic','html'); 

tp = TitlePage; 
tp.Title = 'Magic Squares'; 
tp.Subtitle = 'Columns, Rows, Diagonals: All Equal Sums'; 
tp.Author = 'Albrecht Durer'; 
add(rpt,tp); 
add(rpt,TableOfContents); 

ch1 = Chapter; 
ch1.Title = 'Introduction'; 
sec1 = Section; 
sec1.Title = 'What is a Magic Square?'; 
para = Paragraph(['A magic square is an N-by-N matrix '... 
'constructed from the integers 1 through N^2 '... 
'with equal row, column, and diagonal sums.']); 
add(sec1,para) 
add(ch1,sec1) 

sec2=Section; 
sec2.Title = 'Albrect Durer and the Magic Square'; 
para = Paragraph([ ... 
'The German artist Albrecht Durer (1471-1528) created '... 
'many woodcuts and prints with religious and '... 
'scientific symbolism. One of his most famous works, '... 
'Melancholia I, explores the depressed state of mind '... 
'which opposes inspiration and expression. '... 
'Renaissance astrologers believed that the Jupiter '... 
'magic square (shown in the upper right portion of '... 
'the image) could aid in the cure of melancholy. The '... 
'engraving''s date (1514) can be found in the '... 
'lower row of numbers in the square.']); 
add(sec2,para) 
add(ch1,sec2) 

durerImage=load(which('durer.mat'),'-mat'); 
figure('Units','Pixels','Position',... 
[200 200 size(durerImage.X,2)*.5 ... 
size(durerImage.X,1)*.5 ]); 
image(durerImage.X); 
colormap(durerImage.map); 
axis('image'); 
set(gca,'Xtick',[],'Ytick',[],... 
'Units','normal','Position',[0 0 1 1]); 
add(sec2,Figure) 
add(rpt,ch1) 
close gcf 

ch2 = Chapter(); 
ch2.Title = sprintf('10 x 10 Magic Square'); 
square = magic(10); 
tbl = Table(square); 
tbl.Style = {... 
RowSep('solid','black','1px'),... 
ColSep('solid','black','1px'),}; 
tbl.Border = 'double'; 
tbl.TableEntriesStyle = {HAlign('center')}; 
add(ch2,tbl); 
add(rpt,ch2); 

ch3 = Chapter(); 
ch3.Title = sprintf('25 x 25 Magic Square'); 
square = magic(25); 
clf; 
imagesc(square) 
set(gca,'Ydir','normal') 
axis equal 
axis tight 
fig = Figure(gcf); 
fig.Snapshot.Height = '4in'; 
fig.Snapshot.Width = '6in'; 
fig.Snapshot.Caption = sprintf('25 x 25 Magic Square'); 
add(ch3,fig); 
add(rpt,ch3); 

delete(gcf) 
close(rpt)
rptview(rpt)

参考