Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 使用Dymola将特定变量写入.txt或.mat_String_Stream_Modelica_Dymola - Fatal编程技术网

String 使用Dymola将特定变量写入.txt或.mat

String 使用Dymola将特定变量写入.txt或.mat,string,stream,modelica,dymola,String,Stream,Modelica,Dymola,我需要一种方法将模拟中的特定变量写入.txt或.mat 使用: Streams.print(Modelica.Math.Vector.toString(resultVector),"filename"); 与通过“模拟”选项卡导出变量相比,会导致错误的数据,如不一致。txt文件中的值完全不同,没有可见的模式 Modelica.Utilities.Streams.writeRealMatrix会做您需要的事情吗 对我来说 Modelica.Utilities.Streams.writeReal

我需要一种方法将模拟中的特定变量写入.txt或.mat

使用:

Streams.print(Modelica.Math.Vector.toString(resultVector),"filename"); 

与通过“模拟”选项卡导出变量相比,会导致错误的数据,如不一致。txt文件中的值完全不同,没有可见的模式

Modelica.Utilities.Streams.writeRealMatrix
会做您需要的事情吗

对我来说

Modelica.Utilities.Streams.writeRealMatrix(
  fileName="C:/temp/test.mat", 
  matrixName="testMatrix", 
  matrix=[1,2;4,5], 
  append=false, 
  format="7")
生成了预期的.mat文件


为了能够在
.mat
文件中写入变量,必须将变量转换为(二维)矩阵(如果它还不是矩阵)。这可以通过使用方括号转换标量或向量来实现。这将给出标量的
matrix=[1]
,或向量的
matrix=[{1,2,3,4}]
。使用
matrix=1
matrix={1,2,3,4}
会出现错误。

Modelica.Utilities.Streams.writeralMatrix
执行您需要的操作吗

对我来说

Modelica.Utilities.Streams.writeRealMatrix(
  fileName="C:/temp/test.mat", 
  matrixName="testMatrix", 
  matrix=[1,2;4,5], 
  append=false, 
  format="7")
生成了预期的.mat文件


为了能够在
.mat
文件中写入变量,必须将变量转换为(二维)矩阵(如果它还不是矩阵)。这可以通过使用方括号转换标量或向量来实现。这将给出标量的
matrix=[1]
,或向量的
matrix=[{1,2,3,4}]
。使用
matrix=1
matrix={1,2,3,4}
将出现错误。

由于可以接受后处理,因此有一些选项可用:

Dymola包括工具
alist

alist -e var1 [-e var2 ...] inputFile outputFile

export data for var... as comma-separated values, suitable
for importing into Microsoft Excel.

Options: -a  write in ASCII format (default)
         -b  write in Matlab binary format
可以用于读取结果文件并生成任意格式的文件(使用Python)


OpenModelica有一个类似于
alist
的选项,如果您想要更少的数据点,也可以对信号进行重新采样。

由于可以接受后处理,因此有一些选项可用:

Dymola包括工具
alist

alist -e var1 [-e var2 ...] inputFile outputFile

export data for var... as comma-separated values, suitable
for importing into Microsoft Excel.

Options: -a  write in ASCII format (default)
         -b  write in Matlab binary format
可以用于读取结果文件并生成任意格式的文件(使用Python)


OpenModelica有一个类似于
alist
的选项,如果您想要更少的数据点,也可以对信号进行重新采样。

您需要在模拟过程中写入此选项,还是可以对结果文件进行后处理?如果您在模拟过程中这样做,您可能需要在采样(…)
时使用
,以强制以正确的顺序输出。可以接受,但我不想绑定到matlab。您是否有解决方案?您是否需要在模拟过程中编写此文件,或者是否可以接受对结果文件进行后处理?如果您在模拟过程中这样做,您可能需要在采样(…)
时使用
,以强制以正确的顺序输出。可以接受,但我不想绑定到matlab。你有解决方案吗?这导致计算速度非常慢!我明天会再试一次。你也可以给
DymolaCommands.MatrixIO.writeMatrix
一次尝试,或者使用
DataFiles
库,它包含在Dymola标准安装中。我在哪里可以在线找到这个库的文档?我想哪里也找不到。如果你在Dymola中打开类,会有一些文档。这会导致计算速度非常慢!我明天会再试一次。你也可以给
DymolaCommands.MatrixIO.writeMatrix
一次尝试,或者使用
DataFiles
库,它包含在Dymola标准安装中。我在哪里可以在线找到这个库的文档?我想哪里也找不到。如果在Dymola中打开类,则会有一些文档。
alist.exe-e inertia1.w-e inertia2.w PID_Controller.mat PID_Controller.csv
从.mat结果文件中提取两个变量,并将其存储为.csv
alist.exe-e inertia1.w-e inertia2.w PID_Controller.mat PID_Controller.csv
从.mat结果文件中提取两个变量结果文件并将其存储为.csv