MATLAB: Hist within a parfor creates transparency violation error

histMATLABparfortransparency violation error

This code creates a transparency violation error. Is this by design??
s = cell(2,1);
s{1} = randn(100);
s{2} = randn(100);
parfor i=1:2
figure(i);
y = s{i};
hist(y);
end

Best Answer

hist internally uses inputname to support additional functionality in the resulting plot. Unfortunately, using inputname in a function called from parfor results in the transparency violation error you're seeing. You can work around this by ensuring that the input to hist doesn't have a name (i.e. it's a temporary):
parfor i=1:2
figure(i);
y = s{i};
hist(1 .* y);
% hist(s{i}) also works
end