Проверяйте, определен ли Composite для работников
h = exist(C,labidx)
h = exist(C)
h = exist(C,labidx) возвращает true если запись в Composite C имеет заданное значение для работника с labindex labidx, false в противном случае. В общем случае, где labidx - массив, выход h - массив того же размера, что и labidx, и h(i) указывает, является ли составная запись labidx(i) имеет заданное значение.
h = exist(C) эквивалентно h = exist(C, 1:length(C)).
Если exist(C,labidx) возвращает true, C(labidx) не выдает ошибку при условии, что значения C на этих работниках можно сериализировать. Функция выдает ошибку, если она есть labidx недопустимо.
Задайте переменную для случайного числа работников. Проверьте, на каких рабочих местах заданы составные значения, и получите все эти значения:
spmd if rand() > 0.5 c = labindex; end end ind = exist(c); cvals = c(ind);