穿插在python, R, matlab, C++, shell 的后果就是各种跨平台调用。。。之前总结过python调用matlab,见http://www.cnblogs.com/hxvicky/p/4646044.html
现在需要matlab调用shell,只需要system('xxx')既可。
举个栗子,传参pid=[1 2 3], value=[3.2 2.7 9.9]给run-model.sh,执行脚本并得到输出结果(这里偷懒了,将输出保存到文件,再读文件得到输出结果=。=)
<pre>
p=num2str(pid(1));
for k=2:length(pid)
p=[p,',',num2str(pid(k))]; %%转换为,分割的字符串
end
v=num2str(value(1));
for k=2:length(value)
v=[v,',',num2str(value(k))]; %%转换为,分割的字符串
end
system(['./run-model.sh ',p,' ',v,' &> log_opti']);
mcpi=load(mcpi_path);
</pre>
run-model.sh文件
<pre>
!/bin/csh
set paras="cldfrc_rhminl:cldfrc_rhminh:zmconv_c0_lnd:zmconv_c0_ocn:zmconv_ke"
set paraId=2 %%得到参数v
set l = echo $paraId | awk -v RS=',' 'END{print NR}'
foreach j (seq 1 $l
)
set pid=echo $paraId | cut -d ',' -f $j
%%按,分割取参
set para=echo $paras | cut -d ':' -f $pid
set var=echo $paraValue | cut -d ',' -f $j
set para_val="var"
echo para>/c \ $para_val" atm_in
end
</pre>
matlab传参调用shell
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...