我正在用Dymola编写一个mos脚本,在这个脚本中,我动态地计算循环内部的数组元素。很多信息都打印在命令窗口上。每次印出来
Redeclaring variable: Real traj_phie [34, 1002];
Redeclaring variable: Real traj_phie [35, 1002];等等,我不想每次“重新声明”数组,我只是想“填充”它。数组大小的预先分配会解决这个问题吗?如果是这样的话,我如何在mos脚本中预先分配数组?我尝试了不同的方法
Real[50,1002] traj_phie;戴莫拉为此抛出一个错误。因此,我的问题是: 1) mos内部的数组预分配,2)抑制命令输出。有人能帮我吗?谢谢
发布于 2020-01-27 14:17:21
有一个高级标志,它允许您抑制命令输出:
Advanced.EchoScriptCommands = false要初始化具有一定大小的向量、矩阵或数组,请使用fill()函数。在Modelica中没有类似于NaN的东西,所以您必须使用某个值进行初始化。
然后,您可以使用切片操作只分配感兴趣的行/行/元素。
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;https://stackoverflow.com/questions/59932704
复制相似问题