MATLAB: How to create cell followed by uniform distribution

cellfun

I need to create a cell of size n*m which will follow uniform distribution. I can easily create a cell of size 3*2 by the following data set:
a=3; b=8; n=3; m=2;
A={{round((b-a).*rand(1,3) + a)} {round((b-a).*rand(1,3) + a)}; {round((b-a).*rand(1,3) + a)} {round((b-a).*rand(1,3) + a)}; {round((b-a).*rand(1,3) + a)} {round((b-a).*rand(1,3) + a)}};
it resuts
A=
3×2 cell array
{1×1 cell} {1×1 cell}
{1×1 cell} {1×1 cell}
{1×1 cell} {1×1 cell}
where A{1,1}=[8 4 6], A{1,2}=[4 6 3]…….etc. How can I generate such cell with less effort for larger size because creating 10*20 size cell in this way is almost impossible?

Best Answer

z = arrayfun(@(x){round((b-a).*rand(1,3) + a)},1:3*2,'un',0);
A = reshape(z, 3, [])