環境: Windows 7 Professional + オクターブ 3.6.2 + Visual C++
チュートリアルに従って、オクターブをスタンドアロンの C++ プログラムに埋め込もうとしていました。
http://www.gnu.org/software/octave/doc/interpreter/Standalone-Programs.html#Standalone-Programs
最初のプログラムは問題なく実行できましたが、2 番目のプログラムではエラー メッセージが表示されます。
2 番目のプログラムの簡易版:
int main (void)
{
string_vector argv (2);
argv(0) = "embedded";
argv(1) = "-q";
octave_main (2, argv.c_str_vec(), 1);
Matrix a_matrix = Matrix (1, 2);
std::cout << "GCD of [12, 16] is ";
a_matrix(0)=12;
a_matrix(1)=16;
octave_value_list in = octave_value (a_matrix);
octave_value_list out = feval ("gcd", in, 1);
std::cout<<out(0).matrix_value()<<std::endl;
return 0;
}
「feval」の行は実行に失敗しました。その理由は、オクターブ3.6.2では、関数gcd がパラメーターとして値のリストを受け入れなくなり、gcd([value1, value2, ...]) の代わりにgcd(value1, value2, ...)を呼び出す必要があるためです。 、これはオクターブ 3.2.4 でサポートされていたため、ここで私の主な問題が発生します。
複数のパラメータを別々の値として feval に渡すにはどうすればよいですか?
最終的には、GUI アプリケーションでグラフィックス処理を行う必要があるため、C++ 側で conv2 などの関数を呼び出す必要があるかもしれません (残念ながら、複数の関数パラメーターも必要です)。
事前に助けてくれてありがとう