我正在运行一个非常大的元仿真,其中我通过两个超参数(可以说是x和y)以及每组超参数(x_i & y_j)我运行一个中等大小的子仿真。因此:matlab中的指针
for x=1:I
for y=1:j
subsimulation(x,y)
end
end
对于但每种subsimulation,数据的约50%是常见的所有其他subsimulation,或subsimulation(X_1,Y_1).commondata = subsimulation(X_2,Y_2).commondata。
这是非常相关的,因为到目前为止总的模拟结果文件大小是〜10Gb!显然,我想要保存常用子模拟数据1次以节省空间。然而,显而易见的解决方案是将它保存在一个地方,因为它直接调用subsimulation(x,y).commondata,所以会破坏我的绘图功能。
我不知道我是否能在内存%这样做 subsimulation(X,Y)= .commondata%指针1点的位置
如果再也无法工作,你看这个不太优雅的解决方案:
subsimulation(x,y).commondata='variable name' %string
,然后加入
if(~isstruct(subsimulation(x,y).commondata)),
subsimulation(x,y).commondata=eval(subsimulation(x,y).commondata)
end
你们认为有什么解决方法是最好的?
感谢 DankMasterDan
只要您不修改'subsimulation(x,y).commondata',数据就不会被复制。 – Oleg 2013-05-13 19:39:13