Pat*_*ick 6 matlab modelica mat-file dymola
我的问题是打开由Dymola生成的som*.mat文件.对于小型模式,有时候matlab打开创建的*.mat文件没有问题.然后我可以看到工作区中的结构.但我还有一个巨大的模拟模型,有31.536.000个数据点.对于这种模式,Matlab无法打开它.我总是得到提示
Error using load
Unable to read MAT-file C:\Users\Patrick\Desktop\DymolaWork\GridHH_SLP.mat
File may be corrupt.
Run Code Online (Sandbox Code Playgroud)
我的Matlab版本是2014a 64bit,我的Dymola版本是2014 FD001 64bit.我还尝试使用mathworks主页上提供的工具解决问题,以解决损坏的变量名称(loadfixnames/savebadnames).但这并不是很好.因为此工具无法恢复矩阵data_2.任何人都可以给我一个解决这个问题的建议.非常感谢你
Matlab4格式应该没有问题。矩阵的行数和列数存储为 2 个 32 位无符号整数,这使得大小为 8*(2^32-1) *(2^32-1) 的双矩阵成为可能。这只是读取格式的实现问题。
考虑到数据点的数量,如果模型的变量超过大约 136 个,则 data_2 矩阵的总大小将大于 4GB(您可以从 GridHH_SLP.mat 的文件大小判断是否属实)。如果是这种情况,Matlab 可能没有被编程来处理这种大小的矩阵。我在 Octave 中尝试了 39GB data_2 矩阵,它只是说:error: out of memory or dimension too large for Octave's index type。我可以在 OpenModelica 中打开相同的文件(但绘制如此大的文件效率很低,因为默认情况下它们不以转置格式保存)。
如果 Dymola 能够输出较少数量的变量,则该文件可以在 Matlab 中正常工作。您还可以尝试使用 Dymola 附带的程序alist将 mat 文件中的选定变量输出为 csv 格式(如果 alist 可以处理大文件)。