行列のグラフを作成し、これらのグラフをJSPで表示する必要があります。プロジェクトはJavaで開発されており、マトリックスに関する私の操作はMatLabControl API http://code.google.com/p/matlabcontrol/を使って実行されています。Matlabでグラフを作成し、Javaプログラムで表示する
私はMATLAB(特に固有値行列とウェーブレット)によって生成された行列を返したいと思っていました。 MATLABは、グラフイメージをMATLAB表現からjava.awt.Imageに変換する関数 "im2java"を提供します。次のようにMatlabControlの画像データを取得するために使用私のコードは以下のとおりであった:
public Image produceEigenValueGraph(final double [][] matrix) {
final double [][] maxEigenValueMatrix =
extractOutMaxEigenValues(matrix);
Image matlabPlotImage = null;
try {
MatlabNumericArray matLabEigenValueMatrix =
new MatlabNumericArray(maxEigenValueMatrix, null);
matLabTypeConverter.setNumericArray("eigen",
matLabEigenValueMatrix);
matLabProxy.setVariable("amountOfTime", matrix.length - 1);
matLabProxy.eval("time");
matLabProxy.eval("plot(time, eigen)");
matLabProxy.eval("frame=getframe");
final Object [] returnedMatlabArguements =
matLabProxy.returningEval("im2java(frame.cdata)", 1);
matlabPlotImage =
(Image)returnedMatlabArguements[0];
} catch (MatlabInvocationException mie) {
mie.printStackTrace();
}
return matlabPlotImage;
}
コードは、ネストされた例外を返します:
基本的にしない限り、上記のコードの作業のいずれかの希望に終止符を置くCaused by: java.io.WriteAbortedException: writing aborted;
java.io.NotSerializableException: sun.awt.image.ToolkitImage
私は私の使用に間違っています。
-Is the above code the correct/only way to return images to a java program from Matlab?
-If it is what would be the best alternatives to using Matlab, Java API or otherwise?
私はPNGファイル(またはメモリストリーム)に画像を保存することをお勧めします。 –