Я пытаюсь использовать функцию прибоя Octave для построения трехмерных данных из моего приложения на c #.
Я использую Process.Start () для запуска Octave и Process.WriteLine () для отправки команд
Тот же метод отлично работает для построения графика с использованием gnuplot, но он не работает с Octave
Process octavePro;
StreamWriter octaveStWr;
string octavepath = @"C:\Octave\Octave-5.1.0.0\mingw64\bin\octave-cli-5.1.0.exe";
private void button1_Click(object sender, EventArgs e)
{
octavePro = new Process();
octavePro.StartInfo.FileName = octavepath;
octavePro.StartInfo.UseShellExecute = false;
octavePro.StartInfo.RedirectStandardInput = true;
octavePro.StartInfo.RedirectStandardOutput = true;
octavePro.StartInfo.RedirectStandardError = true;
octavePro.StartInfo.CreateNoWindow = false;
octavePro.OutputDataReceived += new DataReceivedEventHandler(InterProcOutputHandler);
octavePro.ErrorDataReceived += new DataReceivedEventHandler(InterProcOutputHandler);
octavePro.Start();
octaveStWr = octavePro.StandardInput;
Thread.Sleep(100);
octaveStWr.WriteLine("info");
octaveStWr.WriteLine("surf([1 2 3; 2 3 4; 3 4 5])");
octaveStWr.Flush();
}
Когда я выполняю две команды «info» и «surf» ([1 2 3; 2 3 4; 3 4 5]) »в Octave-CLI, я получаю информацию о приложении и трехмерный график для данных соответственно.
Но когда я пытаюсь выполнить его из приложения C #, запускается только окно терминала, и в нем ничего не отображается.