【问题标题】:Matlab unable to open the .dat file as data file when calling a software using 'system'使用“系统”调用软件时,Matlab 无法将 .dat 文件作为数据文件打开
【发布时间】:2010-07-11 22:40:56
【问题描述】:

要生成包含所需结果的输出文件(.rwo 格式),我们必须运行使用参数文件(.rwd 格式)的报告程序的可执行文件。输出文件为 ReportBHP1.rwo,该文件将包含导出的变量。

现在要在 Matlab 中实现这一点,下面是一个小脚本,给出了我想要实现的要点。它为每个实现调用 CMG(软件)并提取数据。

for nr=1:NREAL

      dlmwrite(‘PERM.INC’,PERM(:,nr),’delimiter’,’\n’); % Writes the permeability file for each realization

      system('mx200810.exe -f ReservoirModel_CMGBulider.dat')  % Calls CMG
      system('report.exe /f ReportBHP1.rwd /o ReportBHP1.rwo') % Calls Parameter file and generates output file

      [TIME(:,j),BHP1(:,j)]=textread('ReportBHP1.rwo','%f\t%f','headerlines',5); % reading the time and BHP from output file generated for well 1

end

我的所有软件所需的.exe.dll 文件都在我的ReservoirModel_CMGBulider.dat 文件所在的同一个文件夹中。所以我正在通过我拥有所有这些文件的同一文件夹运行.m 文件。

我能够生成输出 (.rwo) 文件。但是软件的仿真报告有错误,在Matlab的命令窗口中显示如下:

"...STOP: Unable to open the following file as data file:
              'ReservoirModel_CMGBuilder.dat'
              Check path name for spaces, special character or a total length greater than 256 characters

              Cannot find data file named 'ReservoirModel_CMGBuilder.dat'

Date and Time of End of Run: .....

ans = 0"

我认为它只读取 .dat 文件一次,然后覆盖第一个实现导致其余实现。因此,所有实现的结果都与第一个实现相同。我需要帮助来纠正这个错误。

【问题讨论】:

  • 不知道如何解决这个问题,但是如果你找到一些好的油袋请告诉我:-)
  • 我没听懂你说的“油袋”。
  • 必和必拓、渗透率、井、储层...
  • 你能在这个目录中从命令 shell 手动多次运行这些命令吗? (另外,我没有看到循环的重点,PERM.INC 会被您的软件自动选择吗?)
  • 我这里展示的基本上只是代码的一部分。有不同的 .INC 文件,我在这里只显示 1 个。 PERM.INC 文件基本上存储了由软件的“ReservoirModel_CMGBuilder.dat”文件自动提取的渗透率值(通过在.dat 文件中添加一个命令行)。

标签: matlab


【解决方案1】:

首先,如果我之前的回答OK,你能接受吗?谢谢!

其次,您是否尝试过像以前一样为所有文件使用完整路径名?

【讨论】:

  • 嘿,雅各布。您之前的回答当然很有用。然而它并不能解决问题。如果接受答案是基于除了作为解决方案之外还可以(也),那么我当然可以这样做:)。您可以查看我的 EDIT 2 以获取解决输出文件问题的命令。
  • 完整路径名没有帮助。我可以通过将所有文件保存在一个文件夹中来生成没有它的输出文件。在我接受您的答案的链接中查看我的 EDIT 2。谢谢。
  • 谢谢雅各布。我再次尝试并添加了 .dat 文件的完整路径。有时这很奇怪,因为即使添加完整路径也无济于事。现在它的工作。 :-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-12-19
  • 1970-01-01
  • 2018-01-06
  • 1970-01-01
  • 2015-06-27
  • 2020-10-21
  • 1970-01-01
相关资源
最近更新 更多