我试过这个
a = 1+3*%i;
disp("a = "+string(a))
我得到a = 1+%i*3
,但我想要的是a = 1. + 3.i
Scilab中是否有任何方法可以打印没有百分号的复数?
答案 0 :(得分:1)
与Matlab类似,您可以通过分别包含实部和虚部来格式化输出字符串。
mprintf('%g + %gi\n', real(a) , imag(a))
然而,当假想部分为负时,这看起来很丑陋。我建议写一个格式化函数:
function s = complexstring(a)
if imag(a)>=0 then
s = sprintf('%g+%gi', real(a) , imag(a))
else
s = sprintf('%g%gi', real(a) , imag(a))
end
endfunction
示例:
disp('a = '+complexstring(1+3*%i))
disp('b = '+complexstring(1-3*%i))
输出:
a = 1 + 3i
b = 1-3i