Как напечатать комплексное число без знака процента в Scilab?

Я пробовал это

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

я получил a = 1+%i*3, но я хочу a = 1. + 3.i

Так есть ли какой-либо метод в Scilab для печати комплексного числа без знака процента?

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))

Выход:

а = 1+3и
б = 1-3i

Другие вопросы по тегам