shell和matlab之间的参数传递

 

    shell和matlab之间的参数传递比shell和Python之间的参数传递要简单,在matlab程序中(以.m脚本文件为例,其他程序如函数等未测试)不需要进行任何配置,直接使用即可,见下面代码:
     test.m   
    ###
    attName     = att;
    attName     = [attName,'/'];
    dataType    = [dt,'/'];         
    data_path   = ['/media/ntfs-1/',dataType,attName,'train_valid_test.mat'];
    struc_path  = [num2str(struc1),'-',num2str(struc2),'-',num2str(struc3)];
   
    disp(data_path);
    disp(stru_path);
    ###

     run.sh
    ###
     hls1=750
    hls2=1000
    hls3=750
    attName='b'
    dataType='9box_max'
    
    /usr/local/MATLAB/R2011a/bin/matlab -nodesktop -nosplash -r "struc1=$hls1,struc2=$hls2,struc3=$hls3,att='$attName',dt='$dataType';test.m;quit"

    ###
    运行run.sh 结果为:
    /media/ntfs-1/9box_max/b/train_valid.test.mat
    750-1000-750

    说明:
   
 1. 由上面可以看到,shell和matlab之间的参数传递比shell与Python之间的参数传递要简单,在matlab程序中直接进行使用即可,不需要另外加载或者编写接口。比如在test.m中“attName=att;”,这里的att就是shell脚本中的"att='$attName'"。
    2. 在shell中调用matlab传递参数时,若参数是字符串类型,则应该在参数值外面加上引号,比如上面的att='$attName',但是调用Python的时候则没有这个规定。
    3. 上面的run.sh 中的“-nodesktop -nosplash -r”指的是不打开matlab图形界面;“-r”后面引号内容分为三块,每一块之间用分号“;”隔开。第一块是具体的参数,第二块就是要调用的matlab程序,第三块“quit”是指运行完matlab程序的时候,跳出matlab程序,否则shell命令还留在matlab的命令行中。

转载于:https://www.cnblogs.com/feiniao-carrie/p/9638809.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值