Извлечение всех выходных аргументов из 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