M = [3,0,0;1,2,0;0,0,3];
L = {'A','B','C'};
X = [L(:),num2cell(M,2)]';
fprintf(' %3s %3s %3s\n',L{:})
fprintf('%3s %3d %3d %3d\n',X{:})
prints this:
A B C
A 3 0 0
B 1 2 0
C 0 0 3
You can adjust the spacing to suit your data and strings by changing the field width of the conversion operators.