Как напечатать комплексное число без знака процента в 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