В MATLAB, как я могу запустить несколько файлов .m (M-файл) автоматически? - PullRequest
3 голосов
/ 22 февраля 2010

В MATLAB , как я могу автоматически запустить 20 файлов .m (M-файл)?

Ответы [ 2 ]

6 голосов
/ 22 февраля 2010

Создайте еще один M-файл и поместите в него все имена ваших 20 существующих M-файлов.

Если вы хотите, чтобы они запускались при запуске, поместите их в startup.m в каталоге запуска (см. doc startup).

Если они имеют систематические имена, вы можете поместить в цикл следующее:

[y1, y2, ...] = feval(function, x1, ..., xn)

где function - строка, которую вы развиваете в цикле.

Редактировать: если М-файлы представляют собой сценарии, а не функции, безопаснее использовать будущие версии:

eval(s)

где s - имя сценария.

4 голосов
/ 22 февраля 2010

Есть много способов, в зависимости от того, какое поведение вы хотите. MATLAB - очень гибкая среда для такого рода вещей. Если ваши файлы находятся в каталоге c: \ work \ myTwentyFiles, создайте новый файл «runMyFiles.m», содержащий

function runMyFiles()
myDir = 'c:\work\myTwentyFiles';

d = dir([myDir filesep '*.m']);
for jj=1:numel(d)
    try
        toRun = fullfile(myDir, d(jj).name);
        fprintf('Running "%s"', toRun);
        run(toRun)
    catch E
        % Up to you!
    end
end

, а затем используйте опцию "-r", чтобы MATLAB автоматически запускал этот файл:

matlab -r runMyFiles

Существует много других вариантов - жестко запрограммированное расположение файлов MATLAB выглядит непривлекательным для начинающих ...

Просто заметил обновленный вопрос: другой вариант - использовать массив функций для вызова

d = {'myfun1','myfun2', 'myfun3'};

и сделайте что-то похожее на пример выше - вам нужно изменить определение «toRun» на что-то вроде

toRun = fullfile(myDir, d{jj});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...