the temporary variable uses a value set outside of the PARFOR loop
2 ビュー (過去 30 日間)
古いコメントを表示
Let' say I have the code like this:
gcp;
a=zeros(1,3);%create the zeros matric 1x3
my_cell={[1 1 1;2 2 2],[3 3 3;4 4 4],[5 5 5;6 6 6;7 7 7]}; %this is the initial cell
parfor I=1:3
input_data=my_cell{I};%get data coordinate(x,y,z) from my_cell
[ result ] = my_function( input_data );% The result will be generated from function named "my_function". The result is kx3 matric
[a,~,~] = union(a,result,'rows');% add the result to the initial matrix a
end
In my code informed this warning: the temporary variable "a" uses a value set outside of the parfor loop. How can I fix this error for "parfor"
Thanks.
0 件のコメント
採用された回答
Walter Roberson
2018 年 8 月 13 日
You cannot do that. You are trying to use|a| as a reduction variable, but union() is not one of the supported reduction operations. You will need to do something like
my_cell={[1 1 1;2 2 2],[3 3 3;4 4 4],[5 5 5;6 6 6;7 7 7]}; %this is the initial cell
N = size(my_cell,2);
a = cell(N,1);
parfor I = 1 : N
input_data=my_cell{I};%get data coordinate(x,y,z) from my_cell
[ result ] = my_function( input_data );% The result will be generated from function named "my_function". The result is kx3 matric
a{I} = result;
end
a = unique(vertcat(a{:}), 'row');
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Loops and Conditional Statements についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!