gpt4 book ai didi

bash - 运行 matlab 命令行并自动运行 unix 服务器 bjob​​s

转载 作者:太空宇宙 更新时间:2023-11-03 20:31:00 26 4
gpt4 key购买 nike

我正在以这种方式运行一段名为 fit.m 的 matlab 代码,

clear all;
load('/pathtomatfile/alldata.mat')
count = rxw1;
count = double(count);
x_cov = ltgbd;

alldata.mat 有几个感兴趣的数据,即

rxw1
rbg2
rfd1
wop3,
ltgbd,
etc.

我可以从命令行为给定的感兴趣的数据运行这样的脚本(在我的示例中 count=rxw1),

matlab -nodisplay -nojvm -nosplash -r ${pathtoscript}fit -logfile lfile.txt

但是,我需要自动运行,这样我就可以告诉 matlab 使 count = mat 文件中的任何其他数据集。即,我想为不同的数据集并行编写脚本,但我需要类似的东西:

matlab -nodisplay -nojvm -nosplash -r ${pathtoscript}fit -logfile lfile.txt DATAOFINTERESTHERE (i.e., rxw1 count will equal rxw1, etc.)

是否可以按照我的建议进行?我如何通过在调用脚本时将数据集名称作为输入参数来自动运行脚本以针对我选择的任何数据集运行?

一旦我有了它,我计划通过 LSF 提交作业来实际并行运行它们,但将感兴趣的数据的名称作为输入,记住这样的事情:

bsub -q week -R'rusage[mem=8000]' \
"matlab -nodisplay -nojvm -nosplash -r ${pathtoscript}fit -logfile lfile.txt DATAOFINTEREST"

抱歉,如果它太基础了,但我不熟悉运行 matlab 命令行。

最佳答案

您可以使 fit 成为一个函数,而不是脚本。 fit 函数 可以有一个指向正确数据文件的输入变量。然后就可以运行了

matlab -nodisplay -nojvm -nosplash -r "cd ${pathtoscript}; fit('${dataofinterest}');exit;"

编辑添加了这个详细的fit乐趣。

您的 fit 函数应该类似于

function fit( variableName )
%
% run fit for a specific variable from the mat file
% variableName is a string, e.g. variableName = 'rgb1';
%

ld = load('/pathtomatfile/alldata.mat');
count = ld.(variableName); % access variables in mat file as struct fields
count = double( count );
% and I believe you can take it from here...

编辑:类似的解决方案将 mat 文件加载到结构中以处理加载的变量可以在 here 中找到更多详细信息。

关于bash - 运行 matlab 命令行并自动运行 unix 服务器 bjob​​s,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13709516/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com