Hello, I am trying to suppress following output 'Evaluating tall expression using the Parallel Pool 'local':' for gather function. Unfortunately it is in a parfor loop so I can't use evalc to suppress it. Can anyone help me?
2 ビュー (過去 30 日間)
古いコメントを表示
Angelo Scacciavillani
2018 年 5 月 19 日
コメント済み: Angelo Scacciavillani
2018 年 5 月 22 日
Hello, I am trying to suppress following output 'Evaluating tall expression using the Parallel Pool 'local':' for gather function. Unfortunately it is in a parfor loop so I can't use evalc to suppress it. Can anyone help me?
0 件のコメント
採用された回答
Preethi Ayyamperumal
2018 年 5 月 22 日
"evalc" violates transparency in parfor loops and hence restricted. Such transparency restrictions apply only to the direct body of the parfor construct, and not to any functions called from there.
As a workaround, hide your call to evalc('gather(argument)') in a MATLAB function and call the function from "parfor" loop to suppress the output of "gather" function.
Refer to the following code for example:
ds = datastore('airlinesmall.csv');
varnames = {'ArrDelay', 'DepDelay'};
ds.SelectedVariableNames = varnames;
ds.TreatAsMissing = 'NA';
parfor i = 1:4
tt = tall(ds)
a = tt.ArrDelay;
m = mean(a,'omitnan');
s = std(a,'omitnan');
one_sigma_bounds = [m-s m m+s];
supress_gather_output(one_sigma_bounds,a);
end
function supress_gather_output(one_sigma_bounds,a)
[t,sig1] = evalc('gather(one_sigma_bounds)');
[max_delay, min_delay] = evalc('gather(max(a),min(a))');
end
その他の回答 (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!