Modelica 如何处理Dymola中的大型矩阵?

Modelica 如何处理Dymola中的大型矩阵?,modelica,dymola,openmodelica,Modelica,Dymola,Openmodelica,我想知道如何处理Dymola中的大型矩阵。我有一个Modelica代码,需要从一个大的txt文件中读取值,并将其存储到矩阵中。以下是显示1000x1000矩阵的示例代码。我希望Modelica从存储w2值的txt文件中读取值(txt文件(~13MB):)。txt文件已经具有Modelica语言中的矩阵格式。但是,元素太多了,我无法将这些值手动复制到Dymola。如果我那样做,迪莫拉就会停止反应 model Unnamed Real[1000, 1000] w2; end Unnamed;

我想知道如何处理Dymola中的大型矩阵。我有一个Modelica代码,需要从一个大的txt文件中读取值,并将其存储到矩阵中。以下是显示1000x1000矩阵的示例代码。我希望Modelica从存储w2值的txt文件中读取值(txt文件(~13MB):)。txt文件已经具有Modelica语言中的矩阵格式。但是,元素太多了,我无法将这些值手动复制到Dymola。如果我那样做,迪莫拉就会停止反应

model Unnamed
  Real[1000, 1000] w2;
end Unnamed; 

多谢各位

看看这个例子,你会得到一些启发。您需要将文件设置为受支持的格式,而您自己的文本格式不受支持。在这种情况下,您可以编写自己的解析器,或者将文件转换为MSL知道如何读取的MAT文件。

请看示例以获得一些启示。您需要将文件设置为受支持的格式,而您自己的文本格式不受支持。在这种情况下,您可以编写自己的解析器或将文件转换为MSL知道如何读取的MAT文件。

您还可以查看支持多种文件格式的。

您还可以查看支持多种文件格式的。

不幸的是,上面提到的ReadRealMatrixFromFile示例并没有解决OP带来的问题。相反,它也遇到了同样的问题。。。实际问题是Dymola将为矩阵的每个元素生成一行C代码。因此,1000x1000矩阵将生成1000000行C代码。这是通过将dsmodel.c文件分离为多个dsmodelext*.c文件来管理的。根据C编译器的不同,这可能导致不可接受的长编译时间(即编译时间>运行时间的1000倍)。目前我不知道有什么解决方法。请使用注释
\uuuudymola\uhidarray=true
。另请参见。不幸的是,上面提到的ReadRealMatrixFromFile示例并没有解决OP带来的问题。相反,它也遇到了同样的问题。。。实际问题是Dymola将为矩阵的每个元素生成一行C代码。因此,1000x1000矩阵将生成1000000行C代码。这是通过将dsmodel.c文件分离为多个dsmodelext*.c文件来管理的。根据C编译器的不同,这可能导致不可接受的长编译时间(即编译时间>运行时间的1000倍)。目前我不知道有什么解决方法。请使用注释
\uuuudymola\uhidarray=true
。另见。