Я использую parfor
, к сожалению, две мои переменные, x
и y
, которые являются матрицами, транслируются и не знают, как этого избежать.Я читал об этом в справке MATLAB, но не смог найти решение.Как я могу предотвратить трансляцию x
и y
?
Вот мой код:
parfor k=1:length(Lambda)
lambda=Lambda(k);
for p=1:length(Gamma)
gamma=Gamma(p);
for Fold=1:size(Fold_indices,2)
x_Train=x(logical(Fold_indices(:,Fold)),1:end);
Y_Train=y(logical(Fold_indices(:,Fold)),1:Num_Tasks);
% Do sth with x_Train and Y_train
end
end
end
Я попытался нарезать передаваемые данные (x) в массив ячеек иэто не решило проблему хорошо.
B=cell(1,J);
% Fill each entry of B with a matrix
% ...do it here
....
parfor k=1:length(Lambda)
lambda=Lambda(k);
for p=1:length(Gamma)
gamma=Gamma(p);
for Fold=1:J)
x_Train=B{1,J};
% Do sth with x_Train and Y_train
end
end
end
Интересно, что когда я присваиваю переменную broadacaste (B) другой переменной (D), она перестает передаваться.
B=cell(1,J);
% Fill each entry of B with a matrix
% ...do it here
....
parfor k=1:length(Lambda)
D=B;
lambda=Lambda(k);
for p=1:length(Gamma)
gamma=Gamma(p);
for Fold=1:J)
x_Train=B{1,J};
% Do sth with x_Train and Y_train
end
end
end