Bash 通过matlab在Cygwin中执行命令只会生成3个文件中的2个

Bash 通过matlab在Cygwin中执行命令只会生成3个文件中的2个,bash,matlab,cygwin,Bash,Matlab,Cygwin,我正在尝试转换physionet.org上的一些数据。我批量下载了一堆.dat文件,需要将它们转换为.mat文件。physynet.org提供了一个工具箱来实现这一点(甚至是MATLAB)。我就是不能让MATLAB工具箱/函数工作。这使我安装了cygwin并编译了它们的库,这样做是通过在matlab中运行循环并一个接一个地转换它们 我像这样使用函数wfdb2mat:wfdb2mat-rs010\u re>s010\u rem.info。这将生成三个文件:.hea、.mat和.info。最后一个文

我正在尝试转换physionet.org上的一些数据。我批量下载了一堆.dat文件,需要将它们转换为.mat文件。physynet.org提供了一个工具箱来实现这一点(甚至是MATLAB)。我就是不能让MATLAB工具箱/函数工作。这使我安装了cygwin并编译了它们的库,这样做是通过在matlab中运行循环并一个接一个地转换它们

我像这样使用函数wfdb2mat:wfdb2mat-rs010\u re>s010\u rem.info。这将生成三个文件:.hea、.mat和.info。最后一个文件.info在通过matlab运行时不会生成,但是手动运行该命令会起作用

下面的代码是我正在使用的:

    theprogram = '"C:\cygwin64\bin\bash.exe"';
    thearguments = ['-l -i -c ''cd ''/cygdrive/c/users/xxx/' filename ''';' 'wfdb2mat -r ' s ' > ' s 'm' '.info']
    system(sprintf('%s %s', theprogram, thearguments))
sprintf输出如下:“C:\cygwin64\bin\bash.exe”-l-i-C'cd'/cygdrive/C/users/xxx/patient001';wfdb2mat-r s0010_re>s0010_rem.info“

如果我将其直接复制到bash.exe的快捷方式中,它可以输出所有三个文件。我注意到的唯一区别是,当MATLAB打开bash时,这两条消息:

bash:无法设置终端进程组(-1):设备的ioctl不适当bash:此shell中没有作业控制

更新 我发现MATLAB将输出文件(.info)装入MATLAB wd中,因此通过将该文件移动到指定的文件夹,问题得到了解决。我尝试将绝对路径添加到命令行,但这对我来说不起作用


我希望有人能帮上忙!提前谢谢你,Sonny,我发现MATLAB将输出文件(.info)放在MATLAB wd中-因此,通过将该文件移动到指定文件夹,使用movefile命令解决了问题。我尝试将绝对路径添加到命令行,但这对我不起作用