Error using histogram in parlor-loop

1 Ansicht (letzte 30 Tage)
Jens Lindahl
Jens Lindahl am 30 Apr. 2019
Kommentiert: Edric Ellis am 12 Sep. 2019
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,

Akzeptierte Antwort

Edric Ellis
Edric Ellis am 1 Mai 2019
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 Kommentar
Jens Lindahl
Jens Lindahl am 1 Mai 2019
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!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Produkte


Version

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by