当模拟结果是数组时,如何将其放入.txt文件中?

2024-06-16 11:10:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我用这个脚本模拟了一个模型,现在我只想用文本文件中的符号T1替换T1

如何将T1从数组更改为其他数组,以便我可以替换它?你知道吗

from pymodelica import compile_fmu
        from pyfmi import load_fmu
        # Import the plotting library
        import matplotlib.pyplot as plt
        import numpy as np
        # Compile model
        model_name = 'Testerequal'
        mo_file = 'Testerequal.mo'
        VDP_fmu = compile_fmu('Testerequal', compiler_options = {'extra_lib_dirs':'D:\JModelica.org-1.17\Testerequal'})
        # Load model
        vdpid = load_fmu(VDP_fmu, log_level=7)
        res = vdpid.simulate(final_time=86400)

        x0= res["int.y"]
        t0= res["time"]

        T1 = x0[40] 

    f = open('D:/JModelica.org-1.17/Testertwo/That.txt','r')
filedata = f.read()
f.close() 

    newdata = filedata.replace('t1',T1)

    f = open('D:/JModelica.org-1.17/Testertwo/That.txt','w')
f.write(newdata)
f.close()

Tags: fromorgimportmodelasloadres数组
2条回答

如果我正确理解了这个问题,那么您需要将NumPy数组输出到文本文件中。在这种情况下,您可以使用:

np.savetxt('filename.txt', T1)

如果这不是你想要的,请告诉我。你知道吗

问题是您试图用numpy float替换字符串。你知道吗

在您的例子中,变量x0是一个numpy浮点数组,因此T1是一个numpy浮点。现在,当您尝试替换t1时,它会给您一个错误,因为t1不是字符串。如果您只想用T1的值替换T1,只需将其转换为字符串,即:

    filedata.replace("t1", str(T1))

相关问题 更多 >