我想将变量m
,n
,r
,X
,Y
(请参见下面的代码)保存在一个文件中,例如{{1 }}和
每次迭代都重复一个新文件名
迭代编号,例如file_1
。
在MATLAB中,我可以简单地执行file_2
,这样save(['data_',int2str(i),'.mat'],'variable1', 'variable2' )
将包含data(1)
,m
,n
,r
,{{1 }}; X
将包含Y
,data(2)
,m
,n
,r
及其新值,依此类推
我如何在Python中做同样的事情?
X
答案 0 :(得分:3)
pickle
库是前往此处的方法。
import pickle
Tests = 5
data = {}
for i in range(Tests):
data['r'] = 5
data['m'] = 500
data['n'] = 500
data['X'] = np.random.rand(data['m'],data['n'])
data['Y'] = np.random.rand(data['m'],data['n'])
with open('data{}.pickle'.format(i), 'wb') as f:
pickle.dump(data, f)
这使您以后可以访问数据字典。例如,
with open('data0.pickle', 'rb') as f:
data = pickle.load(f)
r = data['r']
m = data['m']
以此类推。
答案 1 :(得分:0)
这是在python中执行相同操作的方法。
import numpy as np
Test = 2
for i in range(Test):
r = 5
m = 500
n = 500
X=np.random.rand(m,n)
Y=np.random.rand(m,n)
file_name = 'test_'+str(i)
open(file_name,'w').write(str(r) + str(m) + str(n) + str(X) + str(Y))
答案 2 :(得分:0)
如果您不使用任何库就可以这样做,这是我的解决方案:
import numpy as np
Test = 5
for i in range(Test):
r = 5
m = 500
n = 500
X=np.random.rand(m,n)
Y=np.random.rand(m,n)
file = open('file_{}'.format(i+1), 'w')
file.write('r = {};m = {};n = {};X = {};Y = {}'.format(r, m, n, X, Y))
file.close()
加载已保存的变量
exec(open('file_1', 'r').read())