编译matlab文件名作为参数

时间:2012-08-13 16:33:12

标签: matlab parameter-passing compiled

我在Centos 5上编译了一些Matlab代码。

我尝试像这样运行:

run_cnaseq006.sh /projects/rcorbettprj2/mutationSeq/MCR/v714/ "/home/rcorbett/slx_service_rc/etc/cnv_test_data/CNV_test/config.m"
------------------------------------------
Setting up environment variables
---
LD_LIBRARY_PATH is .:/projects/rcorbettprj2/mutationSeq/MCR/v714//runtime/glnxa64:/projects/rcorbettprj2/mutationSeq/MCR/v714//bin/glnxa64:/projects/rcorbettprj2/mutationSeq/MCR/v714//sys/os/glnxa64:/projects/rcorbettprj2/mutationSeq/MCR/v714//sys/java/jre/glnxa64/jre/lib/amd64/native_threads:/projects/rcorbettprj2/mutationSeq/MCR/v714//sys/java/jre/glnxa64/jre/lib/amd64/server:/projects/rcorbettprj2/mutationSeq/MCR/v714//sys/java/jre/glnxa64/jre/lib/amd64/client:/projects/rcorbettprj2/mutationSeq/MCR/v714//sys/java/jre/glnxa64/jre/lib/amd64
??? Error using ==> run at 65
/home/rcorbett/slx_service_rc/etc/cnv_test_data/CNV_test/config.m not found.

但是,我很容易看到该文件确实存在:

ll /home/rcorbett/slx_service_rc/etc/cnv_test_data/CNV_test/config.m
-rw-r--r-- 1 rcorbett users 3 Aug 13 09:10 /home/rcorbett/slx_service_rc/etc/cnv_test_data/CNV_test/config.m

我尝试了不同的引号,没有引号,但我无法弄清楚为什么它不会执行该文件。该代码在未编译的matlab代码中运行良好,因此编译后会发生一些有趣的事情,这会影响识别文件的能力。

编辑: run_cnaseq006.sh是用于运行已编译代码的自动生成的shell脚本。它大约有40行,因此不能很好地复制到这里。但是,我可以说它只是一个包装器,以确保在运行我的编译代码时加载所有库。所有已编译的代码我都得到了确切的shell脚本包装。

1 个答案:

答案 0 :(得分:0)

我被指向了这个链接:

http://blogs.mathworks.com/loren/2008/08/11/path-management-in-deployed-applications/

“run”命令使用路径管理功能,如“cd”。根据上面的文章,这些活动在编译的应用程序中不受支持,并且可能产生不可预测的结果。

我决定使用替代方法来定义我的运行时变量,方法是使用getline读取文件并使用“eval”将变量加载到内存中。