【问题标题】:compiled matlab filename as parameter编译后的 matlab 文件名作为参数
【发布时间】:2012-08-13 16:33:12
【问题描述】:

我在 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 脚本包装器完全相同。

【问题讨论】:

标签: matlab parameter-passing compiled


【解决方案1】:

我被指向了这个链接:

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

“运行”命令使用路径管理功能,如“cd”。根据上面的文章,编译的应用程序不支持此类活动,并且可能会产生不可预测的结果。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-23
    • 2018-10-09
    相关资源
    最近更新 更多