在 python GEKKO 或 matlab APM 中指定解决方案文件的输出目录
Specify output directory of solution file in python GEKKO or matlab APM
我正在使用 python GEKKO and/or APM Matlab 接口解决一个最优控制问题(它们是两种语言的相同包)。我可以成功解决我的问题,但我不知道如何指定解决方案文件的输出位置。
加载我的文件并使用
解决我的问题后
% server
s = 'http://byu.apmonitor.com';
% application name
a = 'test';
% load model and data file
apm_load(s,a,'test.apm')
csv_load(s,a,'test.csv')
output = apm(s,a,'solve');
一个名为 'solution_test.csv' 的文件被创建在文件 运行 的目录中。我如何更改此输出目录?
如果我对你的理解正确的话,你想将文件从一个目录移动到新目录。尝试将其合并到您的代码中。
#dirpath = path of current file
#fname = file name
import os
import shutil
dest_dir = 'some new directory path'
shutil.copy(os.path.join(dirpath, fname), dest_dir)
您可以通过更改 m._path
来指定 运行 文件夹。如果将其保留为默认临时目录,则可以使用 print(m._path)
查看该文件夹或使用 m.open_folder()
打开临时文件夹。下面是一个简单应用指定运行目录的例子:
from gekko import GEKKO
m = GEKKO()
m._path = r'C:\test'
x = m.Var()
m.Obj(x**2)
m.solve(disp=False)
print(x.value[0])
您需要确保可以写入此文件夹,在本例中为 C:\test
。如果该文件夹不存在或您无权写入该文件夹,它将引发错误。此外,如果您使用锁定文件的程序(例如 Microsoft Excel)打开该文件夹中的其中一个文件,那么当您尝试打开并锁定写入文件时,您将收到错误消息再次 运行 Python 程序。
我正在使用 python GEKKO and/or APM Matlab 接口解决一个最优控制问题(它们是两种语言的相同包)。我可以成功解决我的问题,但我不知道如何指定解决方案文件的输出位置。
加载我的文件并使用
解决我的问题后% server
s = 'http://byu.apmonitor.com';
% application name
a = 'test';
% load model and data file
apm_load(s,a,'test.apm')
csv_load(s,a,'test.csv')
output = apm(s,a,'solve');
一个名为 'solution_test.csv' 的文件被创建在文件 运行 的目录中。我如何更改此输出目录?
如果我对你的理解正确的话,你想将文件从一个目录移动到新目录。尝试将其合并到您的代码中。
#dirpath = path of current file
#fname = file name
import os
import shutil
dest_dir = 'some new directory path'
shutil.copy(os.path.join(dirpath, fname), dest_dir)
您可以通过更改 m._path
来指定 运行 文件夹。如果将其保留为默认临时目录,则可以使用 print(m._path)
查看该文件夹或使用 m.open_folder()
打开临时文件夹。下面是一个简单应用指定运行目录的例子:
from gekko import GEKKO
m = GEKKO()
m._path = r'C:\test'
x = m.Var()
m.Obj(x**2)
m.solve(disp=False)
print(x.value[0])
您需要确保可以写入此文件夹,在本例中为 C:\test
。如果该文件夹不存在或您无权写入该文件夹,它将引发错误。此外,如果您使用锁定文件的程序(例如 Microsoft Excel)打开该文件夹中的其中一个文件,那么当您尝试打开并锁定写入文件时,您将收到错误消息再次 运行 Python 程序。