Я пытаюсь создать автономный исполняемый файл Matlab, содержащий операторы parfeval и панель ожидания. Следующий код отлично работает в среде выполнения Matlab. Однако после компиляции с использованием mcc -m test_mcc.m я получаю следующую ошибку:
ошибка:
Error using parallel.FevalFuture/fetchNext (line 243)
The function evaluation completed with an error.
Error in test_mcc (line 11)
Caused by:
An error occurred interpreting the results of the function evaluation.
parallel:fevalqueue:FetchNextFutureErrored
код:
function test_mcc()
N = 100;
for idx = N:-1:1
% Compute the rank of N magic squares
F(idx) = parfeval(@rank,1,magic(idx));
end
% Build a waitbar to track progress
h = waitbar(0,'Waiting for FevalFutures to complete...');
results = zeros(1,N);
for idx = 1:N
[completedIdx,thisResult] = fetchNext(F);
% store the result
results(completedIdx) = thisResult;
% update waitbar
waitbar(idx/N,h,sprintf('Latest result: %d',thisResult));
end
delete(h)
end
любые подсказки?
parfeval
заключается в том, что второй входной аргумент указывает количество выходных аргументов, которые должны быть запрошены у функции, переданной в качестве первого аргумента, поэтому в этом случае вызовparfeval
полностью корректен. - person Edric   schedule 27.10.2015