If you want to change array values, why are you using disp()?
This will produce the output of the same size:
A = rand(4,3); % a test array
A(1) = 0.5 % make sure at least one is exactly 0.5
B = sign(A-0.5) % simple numeric output
If for some reason, you want a bunch of text output:
cmap = {'-1','0','+1'};
Btext = cmap(sign(A-0.5)+2) % cellchar output