I want to scatter all the positive real values of every cell
In that case, I would convert your cell array to a 3D matrix. As I commented, it's much easier to work with. It's strange that the first row of your cell array has one less element that the others, but we can just pad the shorter cells with NaN.
maxlength = max(cellfun(@numel, c(:)));
permutedpadded = cellfun(@(m) permute([m; nan(numel(m) - maxlength)], [3, 2, 1]));
asmatrix = cell2mat(permutedpadded);
toplot = real(asmatrix) >= 0;
[x, y, ~] = ndgrid(1:size(asmatrix, 1), 1:size(asmatrix, 2), 1:size(asmatrix, 3));
scatter3(x(toplot), y(toplot), real(asmatrix(toplot)));