2012-07-11 73 views
2

我有一个可执行文件,它在运行时询问参数文件的名称。我已经尝试了所有的样式输入参数文件的名字,但我得到了同样的错误是:Matlab中的system()函数无法识别参数文件名

GAM Version: 2.905 

ERROR - the parameter file does not exist, 
     check for the file and try again 

Stop - Program terminated. 


ans = 

    0 

参数文件的名称是gam.par。我已经尝试了功能能够自动读取参数文件的名称的各种款式:

system('"gam.exe" -f "gam.par"') 

system('"gam.exe" -f "gam.par"') 

system('"gam.exe" -f gam.par') 

system('gam.exe -f gam.par') 

system('"gam.exe" /f gam.par') 

system('"gam.exe" /f gam.par /o gam.out') 

system('"C:\Users\...\gam.exe" /f gam.par /o gam.out') 

system(['"C:\Users\...\gam.exe" /f gam.par /o gam.out']) 

gam.pargam.par是参数(输入)文件和输出文件,分别。但是,在上述每种情况下,我都会得到与开头所示相同的错误消息。

我所有的文件(输入,输出,可执行文件等)都在同一个文件夹中。如果我在不使用参数文件名的情况下使用system()函数,那么它运行时没有错误,并提示我输入参数文件名,并且当我在提示符下输入相同的文件名(即gam.par)时,一切正常。我希望能够通过在system()参数中输入参数文件名来自动执行该操作,而不是在提示符下手动输入。如果有人能确定我为什么无法获得我想要做的事情,这将是有帮助的。谢谢!

+0

你刚试过'system('gam.exe gam.par')'?我没有在文档中看到-f标志/选项。 – gary 2012-07-11 00:37:55

+0

酷!有效 :)。我使用了-f标志/选项,因为之前我已经使用过system()函数来获取不同的软件,所以我不得不使用-f标志。你可以回答这个问题,我可以接受。非常感谢。 – Pupil 2012-07-11 00:45:55

回答

2

this page从Mathworks公司,语法是:

system('filename parameter1 parameter2...parameterN') 

或在您的情况:

system('gam.exe gam.par') 

注意周围的整个论证的单引号以及各参数之间的空间是传递给可执行应用程序。也有完整的product documentation,但我发现它比我以前的链接不太清楚。

2

这里是一个例子。比如,当你在一个文本文件:C:\filename.txt

system('type c:\filename.txt') 

现在,如果该文件已在其名称(或它的路径)的空间,则需要用双引号:

system('type "c:\my filename.txt"') 
+0

谢谢Amro。你非常有帮助! – Pupil 2012-07-11 18:24:25

0

运行程序在控制台:\\location\My programm.exe 'param 1' 'param 2'

运行程序在Matlab:system(['location\my proramm.exe' '"param 1"' '"param 2')

pathApplicationForm = strcat('"C:\Users\Master\Google Drive\Bakalaura Darbs\Application Development for the Microscopic Models Calibration\Application Form\bin\Debug\Application Form.exe"'); 
runParam = strcat(get(vEdit2,'String'), '\', get(vEdit3,'String')); 
VISSIM = strcat(get(vEdit1,'String')); 
system([pathApplicationForm ' "' VISSIM '" "' runParam '']); 

它的工作^^