我正在使用MATLAB,想在Windows下使用CYGWIN执行一些C++程序。这些程序在Cygwin的本地目录中:C:\cygwin\home\Alex\Community_BGLL_CPP
。我可以让CYGWIN在MATLAB的本地目录下执行命令:
>> ls
. README genlouvainmex.m
.. genlouvain.m private
>> system('C:\cygwin\bin\ls')
README
genlouvain.m
genlouvainmex.m
private
ans =
0
但我无法像在CYGWIN的本地目录中那样执行命令。这是为了启动一个C++程序以生成一个文本文件,然后我可以使用MATLAB来处理它。因此,我只需要调用它。在这里,我尝试使用ls
进行实验:
>> system('C:\cygwin\bin\ C:\cygwin\home\Alex\ls')
'C:\cygwin\bin\' is not recognized as an internal or external command,
operable program or batch file.
ans =
1
我也尝试了
>> system('C:\cygwin\bin\ls C:\cygwin\home\Alex\')
,但它也无法工作。其中一种方法是进入CYGWIN目录,然后执行以下命令:
cd
。>> pwd
ans =
c:\cygwin\home\Alex\Community_BGLL_CPP\sample_networks
>> system('C:\cygwin\bin\ls')
arxiv.bin
arxiv.txt
example.bin
example.txt
graph.tree
graph_list.bin
graph_list.txt
karate.bin
karate.tree
karate.txt
ans =
0
C:\cygwin\bin\
不是可执行文件。你可以尝试使用类似system('C:\cygwin\bin\bash -c C:\cygwin\home\Alex\ls')
的方式从 Cygwin-shell 中调用你的 C++ 程序(这里是 ls)。 - Tobias\\
)。或者尝试像这样用引号:system('C:\cygwin\bin\bash -c "C:\cygwin\home\Alex\ls"')
。我的猜测是需要转义。 - Tobiasconvert
的程序,但我认为像ls
这样的操作是第一步。奇怪的是,ls
可以工作,但它总是从同一个目录产生结果 `>> system('C:\cygwin\bin\bash -l -c ls C:\cygwin\home\Alex\Community_BGLL_CPP') Community_BGLL_CPP Community_latest - Vass