Octave - Как я могу использовать pararrayfun с файлом на входе? - PullRequest
0 голосов
/ 27 марта 2019

Я новый пользователь Octave.Моя версия Octave - 4.4.1.Мне нужна помощь о том, как использовать параллельный пакет.У меня есть функция modele_file, которая принимает в качестве входных данных структуру класса, которая содержит путь к файлам.Я должен загрузить эти матовые файлы.В данный момент октава говорит, что мой вклад не определен.Может ли кто-нибудь помочь мне выяснить, чего не хватает в моем коде?

Хотя моя функция может функционировать самостоятельно.Мой приоритет - запуск моей функции, мне не нужно, чтобы она регистрировалась в объекте.

Best,


files = dir('./../data/*.mat');
[row col] = size(files);

for k = 1:1000
    name{k} = getfield(files, {k,1}, 'name');
end


fun_str = @(stg) strcat("./../data/", stg) ;
vec_name = arrayfun(fun_str, name) ;
vec_result = arrayfun(fun_str,  repmat({"result/"}, row,1)) ;

a = [vec_name, vec_result'] ;
struct_info = cell2struct(a, {"name", "result"}, 1);

solution = pararrayfun(nproc, modele_file, struct_info) 



Вот пример моей функции:

function modele = modele_file(info_struct)
  file = info_struct{1} ;
  path = info_struct{2} ; 

  load(strcat(file)) ;
  modele.X = zeros(2,2) ; 
  save('file.mat', 'modele') ;
...