我一直在编写一个C++程序来解决简单摆的问题,然后使用GNU Octave绘制结果。我的程序通过以下代码行来绘制结果:
system("./simppenadj.sh");
其中simppenadj.sh
是:
#!/bin/sh
octave --no-gui --persist -q simppenadj.m
而 simppenadj.m
是:
#!/usr/bin/octave
# Plotting simppenadj.txt
A = importdata('simppenadj.txt');
B = importdata('simppenadjdx.txt');
t = A(:,1);
theta = A(:,2);
dtheta = B(:,2);
figure
plot(t,theta)
xlabel('t','FontSize',16,'FontWeight','bold')
ylabel('\theta','FontSize',16,'FontWeight','bold')
title('{d^{2}\theta}/{d{t^{2}}} = -9.8 cos({\theta})','FontSize',18,'FontWeight','bold')
figure
plot(theta,dtheta)
xlabel('\theta','FontSize',16,'FontWeight','bold')
ylabel('d\theta/dt','FontSize',16,'FontWeight','bold')
title('{d^{2}\theta}/{d{t^{2}}} = -9.8 cos({\theta})','FontSize',18,'FontWeight','bold')
每当我运行我的C++程序时,GNU Octave的CLI会启动(并在最后保留打开状态),然后数据将被绘制。我不希望GNU Octave的CLI保持打开状态,但我知道的唯一方法是删除
simppenadj.sh
中的--persist
选项,这也会使GNU Octave生成的图形不再保持打开状态。这是一个问题,因为我希望在运行完我的C++程序后,图形能够保持打开状态。那么有没有办法做到这一点呢?