Есть ли способ исправить порядок выполнения скрипта с несколькими разделами на Matlab? - PullRequest
0 голосов
/ 24 мая 2019

У меня есть сценарий с несколькими разделами, и мне было интересно, есть ли способ исправить порядок выполнения разделов.Например: Разделы 1, 2 и 3 ==> иногда я хочу, чтобы раздел 2 выполнялся до 1 или 3 перед 1 или любым другим порядком.

Разделы независимы, и существует более 3 разделов,вот почему я не могу выполнить одно за другим.

Заранее спасибо, и, пожалуйста, примите мои извинения, если есть тривиальный способ, потому что я не эксперт.

Ответы [ 3 ]

1 голос
/ 24 мая 2019

Два варианта, которые я могу придумать:

  1. Сделайте каждый из ваших разделов функцией , а затем вызывайте свои функции в любом порядке, который вам нравится.Это может не быть «симпатичным» решением, если у вас есть много переменных рабочей области, которые вам нужно добавить в качестве аргументов и выводить из этих функций, но это возможно.
  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
0 голосов
/ 30 мая 2019

Возможно, это злоупотребление тестовой средой для вашего варианта использования, но, поскольку они независимы, вы можете использовать основанные на сценариях тесты . Это позволит вам создать набор тестов, который представляет собой массив, соответствующий каждому разделу (test). Затем вы можете переупорядочить этот массив в соответствии с вашими сердцами и вызвать запуск в наборе (или запустить его параллельно)

0 голосов
/ 24 мая 2019

Если у вас есть 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

Теперь вы можете переупорядочивать вызовы функций в верхней части файла по своему усмотрению, что, вероятно, проще, чем переупорядочивать весь код в вашем скрипте.

Однако, если данные передаются между разделами, вам нужно будет включить соответствующие переменные в качестве входных и выходных аргументов для ваших функций, и, возможно, потребуется определенная работа, чтобы выяснить, какие именно переменные актуальны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...