首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Modelica mos脚本中数组大小的预分配

Modelica mos脚本中数组大小的预分配
EN

Stack Overflow用户
提问于 2020-01-27 14:03:20
回答 1查看 99关注 0票数 2

我正在用Dymola编写一个mos脚本,在这个脚本中,我动态地计算循环内部的数组元素。很多信息都打印在命令窗口上。每次印出来

代码语言:javascript
复制
Redeclaring variable: Real traj_phie [34, 1002];
Redeclaring variable: Real traj_phie [35, 1002];

等等,我不想每次“重新声明”数组,我只是想“填充”它。数组大小的预先分配会解决这个问题吗?如果是这样的话,我如何在mos脚本中预先分配数组?我尝试了不同的方法

代码语言:javascript
复制
Real[50,1002] traj_phie;

戴莫拉为此抛出一个错误。因此,我的问题是: 1) mos内部的数组预分配,2)抑制命令输出。有人能帮我吗?谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-27 14:17:21

有一个高级标志,它允许您抑制命令输出:

代码语言:javascript
复制
Advanced.EchoScriptCommands = false

要初始化具有一定大小的向量、矩阵或数组,请使用fill()函数。在Modelica中没有类似于NaN的东西,所以您必须使用某个值进行初始化。

然后,您可以使用切片操作只分配感兴趣的行/行/元素。

代码语言:javascript
复制
traj_phie = fill(0.0, 50, 10);

// Assign line by-line
for i in 1:50 loop
  traj_phie[i, :] = i*ones(10);
end for;
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59932704

复制
相关文章

相似问题

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