2013-08-07 62 views
1

我有一个Fortran代码的可执行文件,我想从MATLAB运行。在Linux机器上执行使用intel-fortran编译的程序

我使用以下两种方法试过,但得到的错误:

!/home/atrac/code case172.jcl 
error:- ls: cannot access ./id: No such file or directory 
ls: cannot access ./id: No such file or directory 

!gnome-terminal --command "./home/myhome/code case12.jcl" 
error: There was an error creating child process for this terminal 

有没有一种方法,我可以写一个shell脚本来执行程序,直到执行外部程序,然后暂停Matlab的传递控制回Matlab的?

我试图在Matlab中运行一个遗传算法,该算法称之为外部软件。 任何想法或帮助,不胜感激。

感谢, 佳日

回答

1

好吧,看起来就像两个不同的东西会在这里。两者都可能与Matlab的当前目录有关。

!/home/atrac/code case172.jcl 
error:- ls: cannot access ./id: No such file or directory 
ls: cannot access ./id: No such file or directory 

在这里,它看起来像你管理运行您的程序code,但code或JCL脚本正在寻找一个在当前工作目录中名为id文件。当你从Matlab中退出时,这将是Matlab的当前目录。从Matlab命令提示符运行pwd以找出您的位置。您可以通过在Matlab中使用cd来修复此问题,以移至id文件实际存在的目录(我猜测它位于/ home/atrac中),然后使用相同的命令行运行code。一个更好的解决方法是重写code和/或JCL脚本在从任何路径运行时(可能通过使用绝对路径)工作,所以你的cwd无关紧要。

!gnome-terminal --command "./home/myhome/code case12.jcl" 
error: There was an error creating child process for this terminal 

在这里,领先的“。”可能是搞砸了,因为它现在在当前工作目录下寻找home/myhome,而不是在根目录下。尝试做!gnome-terminal --command "/home/myhome/code case12.jcl"(不带“。”)。

1

理想的情况下,这应该是一个评论,但我没有足够的声誉。

但是,创建子进程的错误与MATLAB无关。 shell正在出错。你能从终端上运行程序吗?

其次,您使用的是:

!/home/atrac/code case172.jcl 

,但你应该使用 ./家/ ATRAC /代码case172.jcl

+0

感谢Lokesh,即使我认为应该是'!./ home/atrac/code case172.jcl',但那不起作用我得到一个错误: /bin/bash:./home/atrac/code:No这样的文件或目录 是的我能够从终端运行这个程序 – user2660994

+0

你能看到什么是你的Linux的shell? –

+0

另请参阅尝试运行!ls/home/atrac。这应该列出目录中的所有文件。这至少会证实目录是可见的。 –

0

您包含文件夹时,可以从运行MATLAB一个UNIX程序该文件不在MATLAB可见的UNIX系统路径中。要确定是MATLAB可视系统路径,键入以下命令窗口:

的getenv(“路径”)

你可以说,持续目前的MATLAB会话或在修改系统路径随后的MATLAB会话,如下面的部分所述。

修改当前MATLAB会话的系统路径。执行以下操作之一:

Change the current folder in MATLAB to the folder that contains the program you want to run. 

Issue these commands using the Command Window: 

path1 = getenv('PATH') 
path1 = [path1 ':/usr/local/bin'] 
setenv('PATH', path1) 
!echo $PATH 

如果重新启动MATLAB,该文件夹不再位于MATLAB可见的系统路径中。

http://www.mathworks.com/help/matlab/matlab_env/creating-opening-changing-and-deleting-files-and-folders.html#f0-38522

相关问题