Error using histogram in parlor-loop

1 次查看(过去 30 天)
Hey,
I have trouble using histogram in a parfor-loop. Below is a minimal-working-example of my problem:
parfor idx = 1:2
x = randn(1,50*idx);
f = figure()
histogram(x,'Normalization','pdf')
drawnow
end
This gives me the response:
Error using histogram (line 140)
Transparency violation error.
See Parallel Computing Toolbox documentation about Transparency
Error in untitled6 (line 3)
parfor idx = 1:2
I get the error with both R2018a and R2018b
Best regards,

采纳的回答

Edric Ellis
Edric Ellis 2019-5-1
Unfortunately, histogram tries to extract the name of the input variable, and this causes the transparency violation. You can work around this problem by hiding the call to histogram inside an anonymous function, like this:
histFcn = @(x) histogram(x, 'Normalization', 'pdf');
parfor idx = 1:2
x = rand(1, 50*idx);
histFcn(x);
end
  1 个评论
Jens Lindahl
Jens Lindahl 2019-5-1
I figured might be caused by some eval-like function.
For whom it may concern, it also works if you to include multiple variable inputs to the histogram function, as an example;
histFcn = @(x,c) histogram(x, 'Normalization', 'pdf', 'FaceColor', c);
Thanks Edric!

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Histograms 的更多信息

产品


版本

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by