// カレントディレクトリに prony.mm と timeseries.dat を置いて // matx pronymain.mm // で実行する。 List prony(); // prony() を呼び出す main() の例 Func void main() { Integer ii, n; Matrix y; Real h; CoMatrix Z, B, lambda; n= 3; // 推定するモードの個数 h= 0.005; // 時系列の間隔 (秒) read y << "timeseries.dat"; /* "timeseries.dat" の中身は # 1 256 0.0660795 0.129298 0.189621 0.247016 ... のように MAT-データフォーマット。 */ {Z, lambda, B} = prony(y, n, h); for(ii=1; ii<=n; ii++){ printf("%g %g %g %g\t",Re(lambda(ii)), Im(lambda(ii)), Re(B(ii)), Im(B(ii))); } printf("\n"); } #ifdef __MATX__ main(); #endif