gpt4 book ai didi

C++,Gnuplot : Create temporary file in RAM and use it in Gnuplot

转载 作者:搜寻专家 更新时间:2023-10-31 02:15:46 24 4
gpt4 key购买 nike

我是 C++ 的初学者。假设我有一个输出函数的 C++ 程序,例如 f(x)=x*x,我需要计算和打印它。这可以在代码中轻松完成。

是否可以在 RAM 中创建一个包含评估结果的临时文件?比如,它很可能是一个 std::vector,所以它会驻留在堆中(不是吗?)。

那么,是否可以使用 system()(或代码中的任何内容)从内存中调用 gnuplot 文件?

而且,作为最后的心血来潮,这两个是否可以在没有外部虚拟 RAM 磁盘的情况下完成?

最佳答案

因此在 Linux 中,使用管道,您可以执行以下操作作为第一个示例:

cat data.txt | gnuplot -p -e "plot '-' w l"

其中 data.txt 是一个两列文件。您可以让您的程序生成一些数据,而不是该文件,您可以为 gnuplot 添加一个额外的设置,使其稍微复杂一些:

./program | gnuplot -p -e "set ylabel 'E'; plot '-' w l"

现在这就是您所需要的。请注意 -p = 持久性,-e = interactive(?) 和命令之间的分号 ( ; ) 是必需的。类似的东西可能适用于 Windows。我希望这会有所帮助。

额外的东西:如果您有很多设置,您可以将它们放在一个文件中,例如:

$ cat settings.txt
set logs;
set ylabel "hejsan";
set xlabel "energy";
plot '-' w l

然后:

./program | gnuplot -p -e "$(<settings.txt)"

不要遗漏"$(<filename)"中的任何符号!不过,这可能仅适用于 Linux 中的 Bash shell。你可以试试 cygwin环境。或者直接安装ubuntu。

一周后编辑

如果您想这样做来保存您的 SSD,当然不会有什么坏处,但可能并不重要。 SSD 具有智能管理,因此它不会每次都写入同一个物理段。该文件将“四处移动”,并且它们可以持续使用数百 TB 的循环。

关于C++,Gnuplot : Create temporary file in RAM and use it in Gnuplot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38118260/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com