MATLAB: Produce a matrix with the class of its elements

matrix class

Input: 2-dimensional Matrix A
Output: Matrix B, having the same dimensions as A, where each element is the class of the corresponding element in A.
e.g. If A(1,1) = double, then B(1,1) = double
My code is as follows:
function B = whatclass(A)
[row,col] = size(A);
B = [];
for ii=1:row
for jj=1:col
B(ii,jj) = class(A(ii,jj));
end
end
end
I am getting the error below:
Assignment has more non-singleton rhs dimensions than non-singleton subscripts
Error in integerize (line 6) B(ii,jj) = class(A(ii,jj));
Any thoughts? Help in advance.

Best Answer

Assuming that the input is a cell array (otherwise this task does not make much sense):
>> A = {double(1),single(2);uint8(3),int64(4)}
A =
[1] [2]
[3] [4]
>> B = cellfun(@class,A,'UniformOutput',false)
B =
'double' 'single'
'uint8' 'int64'