problem with using parfor
3 次查看(过去 30 天)
显示 更早的评论
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
0 个评论
采纳的回答
Walter Roberson
2019-2-1
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 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!