Effacer les filtres
Effacer les filtres

problem with using parfor

2 vues (au cours des 30 derniers jours)
Diab Abueidda
Diab Abueidda le 1 Fév 2019
Commenté : Diab Abueidda le 1 Fév 2019
Hello All,
I am trying to make use of parfor, but I keep getting the following error "parfor cannot run due to the way the variable 'data' is used." Any thoughts?
Thanks in advance
parfor iel=1:tne
start=(iel-1)*576+1;
end1=576*iel;
data(start:end1)=data2(iel,:);
end

Réponse acceptée

Walter Roberson
Walter Roberson le 1 Fév 2019
parfor iel=1:tne
data((iel-1)*576+1:576*iel)=data2(iel,:);
end
That is, MATLAB can analyze literal indices in ways that it cannot do when those indices are computed.
However, unless you have good reason not to, you should simply create data as a 576 x something array and without using parfor,
data(:, 1:tne) = data2(:, 1:tne) .';
... especially if you can manage to compact it down to just
data = data2 .';
After the copying has been done with 2D indices, then it is very fast to
data = reshape(data, 1, []);
  5 commentaires
Walter Roberson
Walter Roberson le 1 Fév 2019
Then
data = reshape(data2.', 1, []);
with no loop.
Diab Abueidda
Diab Abueidda le 1 Fév 2019
Oops! You are right!
Thanks a lot

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Matrix Indexing dans Help Center et File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by