9

MATLABスクリプトを使用して、マシン上の制御システムを調整しています。チューニングが完了したら、テキスト(特にシリアル番号、日付/時刻、チューニング時に決定された値)とプロット、特に伝達関数を含むレポートが必要です。MATLABでテキストと図形を含むレポートを作成する方法

あなたは何をお勧めしますか?

私が使用するソリューションはどれも、MATLABコンパイラと互換性がある必要がありますので、フィールドエンジニアチームにソリューションを配布できます。

レポートはPDFドキュメントが理想的です。

MATLABレポート生成プログラムは、スクリプトを小さな断片に分割してレポートテンプレートに埋め込む必要があるため、適切な製品ではないようです。私のスクリプトには、プロットが正しく表示されず、コードがレポートジェネレータから実行される場合、これが難しいと思われる場合、ユーザーが介入して値を変更したり、調整を拒否する機会が含まれています。また、コード構造がレポートテンプレートの要件によって決定される場合、コード構造が懸念され、保守性が失われます。

私の前提が間違っている場合、コメントしてください。

UPDATE

私は今、リリースr2016bとMATLABレポートジェネレータを使用するように切り替えているし、それは私のコンパイルされたコードをユーザーのために非常にうまく機能しています。残念ながら、MATLABライセンスを持っている同僚は、スクリプト生成ツールを使用するためにReport Generatorも購入する必要があります。

答えて

4

MATLAB Report Generatorの開発マネージャーとして、私はこの質問がReport Generatorの機能について間違った印象を残すかもしれないと懸念しています。

レポート生成ツールでは、スクリプトを小さな断片に分割してテンプレート内で実行する必要はありません。これを行うことができますが、状況によっては意味がありますが、要件ではありません。実際、多くのReport Generatorアプリケーションは、MATLABスクリプトまたはプログラムを使用してユーザーと対話し、MATLABワークスペースでデータを生成し、最後にワークスペースデータからレポートを生成します。

さらに、R2014b版のMATLAB Report Generatorには、MATLABプログラムにドキュメント生成ステートメントを埋め込むDOM APIというドキュメント生成APIが付属しています。たとえば、選択した出力タイプに応じて、プログラムでドキュメントオブジェクトを作成し、テキスト、段落、表、イメージ、リスト、およびサブドキュメントを追加および書式設定し、Microsoft Word、HTML、またはPDF出力を出力できます。 WordまたはHTMLエディタを使用して、作成したフォームの空白をプログラムで入力することもできます。

このAPIは、Windows、Linux、およびMacプラットフォーム上で動作し、Wordを使用せずに3つのすべてでWordおよびHTML出力を生成します。 Windowsでは、Wordで生成されたWord文書からPDF出力を生成します。

MATLAB Report Generatorの最新リリースでは、DOM APIに似た機能を備えたPowerPoint APIが導入されています。 MATLABアプリケーションにレポート生成を含める必要がある場合は、過去のインプレッションに基づいてMATLAB Report Generatorを除外しないでください。それがどれだけ強力になったのかに驚くかもしれません。

+0

私は今Report Generatorに切り替えて、うまくいきます。 –

1

あなたはActiveXインターフェイスを通してMicrosoft Wordを動かすことを検討しましたか?私はコンパイルされたMatlabプログラムでこれを行い、うまくいきます。 actxserver()のMatlabヘルプを見てください。作成するオブジェクトのタイプはWord.Applicationです。 、文書に数値を取得するにはprint()-dmeta引数を使用して.EMFファイルとして保存し、その後、このような文書に追加します:

編集追加する

WordServer.Selection.InlineShapes.AddPicture(fileName); 
+0

ありがとうございます。言葉が提供するすべてのサービスをどのように発見していますか? Googleは役に立たない。 –

+0

MicrosoftのWebサイトには相当量の情報がありますが、見つけるのは難しいです。 「Word Automation」または「VBA Word」を探してみてください。 Wordオブジェクトを取得したら、Matlabで 'methods()'を呼び出して、それが何を公開しているかを見ることができますが、それはすべてではありません。 – Max

+0

最近のバージョンのWordで利用できるヘルプは、この資料を残念ながら文書化していません。私は、O'Reillyの本に記述されているインターフェースは、ほとんど変更されていないと考えています(http://shop.oreilly.com/product/9781565927254.do).Word 2010では、ActiveDocumentSaveAs()メソッドがActiveDocumentSaveAs2() 。また、マクロを記録してみることもできます(この機能はビューのリボンタブからは不可解です)!生成されたVBAを確認してください。 – Max

2

私はあなたが右の程度だと思いますレポートジェネレータ。

私の意見では、最も速く/最も簡単なアプローチは、HTML文書でレポートを生成することです。そのためには、数字だけを必要とし、テキストファイルを書くだけで、変換は簡単です。

同様のアプローチは、ラテックスファイルを作成することです。そしてそこからpdfを作成してください - あなたが配備したマシンにラテックスをインストールする必要があります。

最後に、MatlabでJavaをうまく統合することができます。あなたが使用できるいくつかのライブラリがあります - thisのように。しかし、すべての合併症がその価値があるのだろうかと思います。

3

私はこれをかなりやった。 MATLAB Report Generatorは一般的に素晴らしいソリューションではありません。 @Maxは正しいアプローチ(COMインターフェイスを通じてWordを自動化する)を提案していますが、私の経験に基づいていくつかのコメントとヒントを追加したいと思います。

  1. このソリューションを使用する場合は、エンドユーザーがWindowsを実行し、自社のコンピュータにOfficeのコピーを置くことになります。最終的にPDFレポートを作成するには、Office 2010以上である必要があります。
  2. 私は、WordではなくExcelでレポート生成を自動化するほうが簡単だと思います。 MATLABからレポートを作成していることを考えると、数値表にはかなり多くのものが必要になるでしょう。これはExcelで簡単にレイアウトすることができます。
  3. Wordで実行する場合、最も簡単な方法は、最初に(MATLABを使用せずに)テンプレート.doc/.docxファイルを作成することです。このファイルには、すべてのレポートと空白のテーブルで同じ一般的なテキストが含まれます。任意の情報。トラックの変更を有効にし、情報を入力する各ポイントに空のコメントを挿入します。 MATLABのレポート作成ルーチン内で、Wordに接続して各コメントを繰り返し、必要なデータに置き換えます。
  4. ExcelをMATLABから自動化する方法を学習している場合、Excel Interopのthis pageとなります。実際にはが役に立ちます。 Wordには同等のものがあります。
  5. @Maxと違って、私は数字を.emfファイルに保存してから挿入しても良い結果は得られませんでした。理論的には、編集可能性は保持されますが、私はその価値は決して見つけられませんでした。代わりに、MATLABで正しい図形(そして適切なサイズ)を得て、print(figHandle, 'dbitmap')でクリップボードにコピーし、Worksheet.Range('A1').PasteSpecialでExcelに貼り付けます。
  6. PDFとして保存するには、Workbook.ExportAsFixedFormat('xlTypePDF', pathToOutputFile)を使用してください。

希望すると助かります!

+0

.emfファイルからFigureを挿入するときの実際の動作は、MatlabやWordのバージョンによって異なります。私は数年前に私が今よりも良い結果を得ていました。しかし、それはまだ機能しているので、それが壊れていなければ... – Max

関連する問題