在MATLAB R2012中:
>> rand(3) ; ans(1,1)=1+i
ans =
1.0000 + 1.0000i 0.5060 0.9593
0.7513 0.6991 0.5472
0.2551 0.8909 0.1386
但是在R2013:
>> rand(3) ; ans(1,1)=1+i
ans =
1.0000 + 1.0000i 0.9134 + 0.0000i 0.2785 + 0.0000i
0.9058 + 0.0000i 0.6324 + 0.0000i 0.5469 + 0.0000i
0.1270 + 0.0000i 0.0975 + 0.0000i 0.9575 + 0.0000i
我该如何解决?
问候。
答案 0 :(得分:1)
如果没有选择尝试,我只能猜测你可能想要使用这种格式。
我最好的选择是format shortg
,它可能隐藏虚部或只是让它不那么分散注意力:
rand(3) ; ans(1,1)=1+i
format shortg
rand(3) ; ans(1,1)=1+i
是shortg
而不是short
。它试图不显示无关的零和小数。
答案 1 :(得分:0)
写这个的最好方法是作为一个新功能,只需输出你喜欢的格式。 示例:
function [ out ] = new_display( in )
for i=1:size(in,1)
for j=1:size(in,2)
fprintf('%.4f', real(in(i,j)));
if(imag(in(i,j)))>0
fprintf(' + %.4fi\t', imag(in(i,j)));
else
fprintf('\t\t\t');
end
end
fprintf('\n');
end
给出:
>> new_display(ans)
0.8147 + 1.0000j 0.9134 0.2785
0.9058 0.6324 0.5469
0.1270 0.0975 0.9575
通常,如果只输入ans
,matlab会调用display()函数。您可以使用自己的函数重载此函数,但MathWorks表示这是一个坏主意(我同意)。
参考: