有没有一种方法可以解决在Matlab上执行具有多个部分的脚本的顺序?

时间:2019-05-24 14:15:23

标签: matlab

我有一个包含多个部分的脚本,我想知道是否有一种方法可以固定执行这些部分的顺序。例如 : 第1、2和3节==>有时我希望第2节在1之前的3或1之前的3或其他顺序执行。

这些部分是独立的,并且有3个以上的部分,这就是为什么我不能一一执行的原因。

在此先感谢您,如果因为我不是专家而采取的琐碎方法,请接受我的道歉。

3 个答案:

答案 0 :(得分:1)

我能想到的两个选择:

  1. 将每个部分设为function,然后按照自己喜欢的顺序调用函数。如果您碰巧有很多工作空间变量需要添加为这些函数的参数并从这些函数输出,则这可能不是一个“漂亮”的解决方案。
  2. 将各节分成不同的文件,然后按需要的顺序调用每个脚本。这与选项1非常相似,但是如果您有很多不想传递的工作空间变量,效果可能会更好。

选项2的示例为:

originalfile.m

%% section 1
do stuff here

%% section 2
do different stuff here

%% section 3
do even more different stuff here

dothings.m

section2
section1
section3

section1.m

%% section 1
do stuff here

section2.m

%% section 2
do different stuff here

section3.m

%% section 3
do even more different stuff here

答案 1 :(得分:0)

如果您具有MATLAB R2016b或更高版本,则可以将每个代码段转换为一个函数,然后按所需顺序调用这些函数:

section1;
section2;
section3;

function section1()
%% original code for section 1 here
end

function section2()
%% original code for section 2 here
end

function section3()
%% original code for section 3 here
end

现在,您可以根据需要在文件顶部对函数调用进行重新排序,这可能比对脚本中的所有代码重新排序更容易。

但是,如果在各节之间传递数据,则需要将相关变量作为函数的输入和输出参数包括在内,否则可能需要一些工作才能准确确定哪些变量是相关的。

答案 2 :(得分:0)

也许这是滥用测试框架来满足您的用例,但是由于它们是独立的,因此您可以利用script based tests。这将允许您创建一个测试套件,该套件是与每个(测试)部分相对应的数组。然后,您可以将该数组重新排列为您的内容,并在套件上调用运行(或并行运行)