Получение всех выходных аргументов из Future
[B1,B2,...,Bn] = fetchOutputs(F)
[B1,B2,...,Bn] = fetchOutputs(F,'UniformOutput',false)
[B1,B2,...,Bn] = fetchOutputs(F) получает все выходы Future объект F после первого ожидания каждого элемента F чтобы достичь штата 'finished'. Ошибка возникает, если какой-либо элемент F имеет NumOutputArguments меньше, чем запрошенное количество выходов.
Когда F является вектором FevalFutures, каждый выходной аргумент формируется путем конкатенации соответствующих выходных аргументов из каждого будущего в F. Если эти выходные данные не могут быть объединены, возникает ошибка. Чтобы избежать этой ошибки, установите 'UniformOutput' опция для false.
[B1,B2,...,Bn] = fetchOutputs(F,'UniformOutput',false) запрашивает, что fetchOutputs объединение будущих выходов в массивы ячеек B1,B2,...,Bn. Выходные данные F может быть любого размера или типа.
После звонка на fetchOutputs, все фьючерсы в F имеют свои 'Read' свойство имеет значение true. fetchOutputs возвращает результаты для всех фьючерсов в F независимо от ценности каждого будущего 'Read' собственность.
Создайте FevalFuture и извлеките его выходные данные.
f = parfeval(@rand,1,3); R = fetchOutputs(f)
0.5562 0.6218 0.3897 0.0084 0.4399 0.2700 0.0048 0.9658 0.8488
Создайте вектор FevalFuture и извлеките все его выходные данные. Для повышения эффективности предварительно распределите массив будущих объектов.
F(1:10) = parallel.FevalFuture; for idx = 1:10 F(idx) = parfeval(@rand,1,1,10); % One row each future end R = fetchOutputs(F); % 10-by-10 concatenated output