如何在Scilab中打印没有百分号的复数?

时间:2015-03-06 06:41:43

标签: scilab

我试过这个

a = 1+3*%i;
disp("a = "+string(a))

我得到a = 1+%i*3,但我想要的是a = 1. + 3.i

Scilab中是否有任何方法可以打印没有百分号的复数?

1 个答案:

答案 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