穿插在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 的音。了解发音是有意...