首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在.mat中读取JModelica输出文件?

如何在.mat中读取JModelica输出文件?
EN

Stack Overflow用户
提问于 2019-12-09 16:41:46
回答 2查看 289关注 0票数 2

为了节省时间,我尝试读取.mat文件,而不是再次模拟模型。

我使用了scipy.io.loadmat,但效果不太好:

代码语言:javascript
复制
res = loadmat('ChatteringControl_result.mat')
res.keys()

['Aclass', 'dataInfo', 'name', 'data_2', 'data_1', 'description']

键不是变量名,我也不知道如何获得变量值。

然后我搜索了分辨率,找到了DyMat,它对其他变量很好,但不能得到。

代码语言:javascript
复制
res1 = DyMat.DyMatFile('ChatteringControl_result.mat')
T = res1['T']
t = res1['time']

KeyError: 'time'

那么,我怎样才能在JModelica中得到所有的结果呢?(当然,没有打开Matlab ),比如,JModelica中的内置函数?

,谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-12-10 09:29:25

要使用JModelica加载mat文件,可以使用以下代码:

代码语言:javascript
复制
from pyfmi.common.io import ResultDymolaBinary

res = ResultDymolaBinary("MyResult.mat")

var = res.get_variable_data("myVar")

var.t #Time trajectory
var.x #Variable trajectory
票数 3
EN

Stack Overflow用户

发布于 2019-12-10 07:15:42

file#-matv4 4-结果-文件格式描述了格式。我想你也可以在戴莫拉手册中了解更多细节。

至于DyMat,没有理由获得时间轨迹,因为您通常会查找变量在特定时间的值。据我所知,开始时间和停止时间都在data_1矩阵中(或者通常是从data_2矩阵的第一个轨迹得到的)。( data_2矩阵可以内插,因此存储在其中的时间值可能不反映求解者在内部采取的实际步骤)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59253157

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档