4

我正在使用MATLAB,我想在 Windows 下使用CYGWIN执行一些C++程序。这些在 CYGWIN 的本地目录中;. 我可以让 CYGWIN 在 MATLAB 的本地目录下执行命令:C:\cygwin\home\Alex\Community_BGLL_CPP

>> 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\'),但它也不起作用。

一种选择是将目录 ( cd) 更改为 CYGWIN 目录,然后执行以下命令:

>> 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
4

1 回答 1

0

我没有安装cygwin,所以我不能确定这个。但我认为您只需要一个“cd”作为系统命令的一部分。例如:

>> system('"C:\Program Files (x86)\Git\bin\bash" -c "cd  C:/Python27; C:/Program\ Files\ \(x86\)/Git/bin/ls"')

生成我的 Python 文件夹的列表,因为 ls 在该文件夹中运行。

所以你想要这样的东西:

>> system('"C:\cygwin\bin\bash" -c "cd  C:/cygwin/home/Alex/Community_BGLL_CPP/sample_networks; C:/some_path/convert"')
于 2013-04-19T15:56:40.053 回答