我正在运行一个非常大的元模拟,其中我通过两个超参数(比如说 x 和 y)并且对于每组超参数(x_i 和 y_j)我运行一个中等大小的子模拟。因此:
for x=1:I
for y=1:j
subsimulation(x,y)
end
end
然而,对于每个子模拟,大约 50% 的数据对所有其他子模拟或 subsimulation(x_1,y_1).commondata=subsimulation(x_2,y_2).commondata 是通用的。
这是非常相关的,因为到目前为止总的模拟结果文件大小约为 10Gb!显然,我想将常用的子模拟数据保存1次以节省空间。然而,显而易见的解决方案是将它保存在一个地方会搞砸我的绘图功能,因为它直接调用 subsimulation(x,y).commondata。
我想知道是否可以执行 subsimulation(x,y).commondata=% pointer to 1 location in memory % 之类的操作
如果这不起作用,那么这个不太优雅的解决方案呢:
subsimulation(x,y).commondata='variable name' %string
然后添加
if(~isstruct(subsimulation(x,y).commondata)),
subsimulation(x,y).commondata=eval(subsimulation(x,y).commondata)
end
你们认为什么解决方案最好?
感谢 DankMasterDan