我一直在编写一个 C++ 程序来解决单摆问题,然后使用 GNU Octave 绘制结果。它通过我的程序中的这一行绘制结果:
system("./simppenadj.sh");
where simppenadj.sh
is:
#!/bin/sh
octave --no-gui --persist -q simppenadj.m
and simppenadj.m
is:
#!/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 保持打开状态,但我知道如何让它不打开的唯一方法是删除--persist
选项中simppenadj.sh
这也使得 GNU Octave 生成的图不会保持打开状态。这是一个问题,因为我希望在运行 C++ 程序后使绘图保持打开状态。那么有没有办法做到这一点呢?