#include <iostream>
#include <fstream>
int main(
int argc,
char *argv[]){
string tempPath="/tmp";
vector<string> args(3); args[0]=string("--silent"); args[1]=string("--path"); args[2]=tempPath;
cout<<
"octave is init "<<octave.
isReady()<<endl;
int ret=0;
cout<<"create a script"<<endl;
ofstream out((tempPath+"/OctaveTest.m").c_str());
out<<"function out=OctaveTest(in1, in2)"<<endl;
out<<"whos"<<endl;
out<<"'octave in1'"<<endl;
out<<"in1"<<endl;
out<<"'octave in2'"<<endl;
out<<"in2"<<endl;
out<<"'octave out'"<<endl;
out<<"out=rand(2,2)"<<endl;
out.close();
cout<<"script test"<<endl;
vector<Eigen::Matrix<float, Eigen::Dynamic, Eigen::Dynamic> > input(1), output(1);
Eigen::Matrix<float, 1, 1> dVal;
dVal(0,0)=10.;
input[0].resize(2,2); input[0]<<1,2,3,4;
input[1]=dVal;
cout<<"C++ input"<<endl;
cout<<input[0]<<endl;
octave.
runM(
"OctaveTest", input, output);
cout<<"c++ output:"<<endl;
cout<<output[0]<<endl;
vector<vector<vector<float> > > inputV(1), outputV;
inputV[0].resize(2);
inputV[0][0].resize(2);
inputV[0][1].resize(2);
inputV[0][0][0]=1.; inputV[0][0][1]=2.;
inputV[0][1][0]=3.; inputV[0][1][1]=4.;
input[1]=dVal;
octave.
runM(
"OctaveTest", inputV, outputV);
cout<<"c++ outputV:"<<endl;
for (int i=0; i<2; i++){
for (int j=0; j<2; j++)
cout<<outputV[0][i][j]<<'\t';
cout<<endl;
}
cout<<endl;
string testStr("testStr");
cout<<"test string converted to int : "<<endl;
for (int i=0; i<testStr.size(); i++)
cout<<(int)testStr[i]<<'\t';
cout<<endl;
Eigen::Matrix<int, Eigen::Dynamic, 1> strMat=octave.
str2Mat<
int>(testStr);
cout<<"octave.str2Mat : "<<endl;
cout<<strMat.transpose()<<endl;
vector<int> strVec=octave.
str2Vec<
int>(testStr);
cout<<"octave.str2Vec : "<<endl;
for (int i=0; i<strVec.size(); i++)
cout<<strVec[i]<<'\t';
cout<<endl;
return 0;
}