如何将图形保存在文件中,然后再调用它?

Posted

技术标签:

【中文标题】如何将图形保存在文件中,然后再调用它?【英文标题】:how to save a Graph in a file and later call it? 【发布时间】:2019-05-17 10:20:52 【问题描述】:

我必须读取代表电路的文件。然后将该电路转换为 DAG。我已经使用邻接列表做到了。

我的问题是如何将 DAG 保存到文件中,这样我就不必在每次程序执行时再次读取文件?

我的意思是只需读取一次文件并构建图表。然后,每当我们需要该图时,我们只需调用它或读取它。

就像我们在 MATLAB 中一样:

% save the constructed graph    
save ('Graph.mat', 'Graph';
% simply just load it
load Graph;

我的问题是一些电路非常大,需要相当长的时间才能转换为图形。如果每次运行都发生这种电路到图形的转换,那将是非常令人沮丧的。 (在 C++ 中)

任何帮助将不胜感激。

【问题讨论】:

您有相互冲突的要求...您希望能够将图形保存到文件(以某种格式),但您不应该从文件中重新加载它?还是您的意思是您不想读取 original 文件并重新创建图形?这是非常不同的,在我看来不值得。您的图形创建代码在某种程度上是慢还是坏?为什么不能只阅读原始电路描述文件并在需要时重新创建图表? 是的,我不想每次都重新创建图表。 Graph 创建是一个非常缓慢的过程。因为我可能在项目的不同部分多次需要 DAG 【参考方案1】:

你想做的是Serialization and Unserialization。有很多方法可以做到这一点,但基本上你想存储足够的数据来重建你的所有对象和相互关系。在 MATLAB 和其他系统为您执行此操作的地方,在 C++ 中您必须自己设计系统。最好的办法是选择一种已知且稳定的方式来表示数据(例如 JSON),为此使用一个库,然后设计其余部分。

【讨论】:

感谢您的回答。看来我应该编写很多代码来做到这一点,对吧?我正在为此寻找一些库或退出算法。我认为按原样处理它,因为它有效但不幸的是耗时

以上是关于如何将图形保存在文件中,然后再调用它?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 CorePlot 创建的图形保存为 jpg 文件

MATLAB。写入文本文件或创建它,如果它不存在。将图形保存在目录中,如果不存在则创建它

鼠标绘制简单图形

如何把Matlab中plot画的图形文件保存为.mat格式,我要把它导入小波的工具箱中进行分析

TensorFlow 从文件中保存/加载图形

将 pandas.Series 直方图保存到文件