如何将fprintf与复杂值一起使用

时间:2019-01-14 00:02:51

标签: matlab printing

我的代码按如下方式计算V1的实部和虚部:

V1=term1/term3 + term2/term3 * i
fprintf( 'Slope V1 = %.4f\n', real(V1), imag(V1) )

我要输出复数V1,如下所示:

Slope of V1 = real(V1) + imag(V1) * i

我似乎从未正确使用%4.f表示法。有人可以给我一个开始吗?我不确定如何处理+号。

V1=term1/term3 + term2/term3 *i
fprintf( 'Slope V1 = %.4f\n', real(V1), imag(V1) )

输出

Slope V1 = 0.0000
Slope V1 = 1.4142

我想输出

Slope V1 = 0.0000+1.4142i

此致, MM

3 个答案:

答案 0 :(得分:1)

如果要显示值,则有两个选择:

1。 disp(z);

2。 fprintf("Slope V1 = %.4f %+.fi\n', real(V1), imag(V1)")

请注意,disp以新行结尾,而fprintf并非如此,这就是为什么我们使用'\ n'

对于%4.f,如果希望数字以4个空格缩进并仅取整数部分,则可以使用它。 如果要将精度设置为小数点后4位,则可以使用%.4f

假设我们要显示12.1234

%4.f:   12
%.4f:12.1234
%.2f:12.12
%10.2f:        12.12

答案 1 :(得分:1)

您尝试对要打印的两个值使用两个格式说明符吗?

fprintf( 'Slope V1 = %.4f + %.4f i\n', real(V1), imag(V1) )

或者甚至更好(as Hunter Jiang suggested):

fprintf( 'Slope V1 = %.4f%+.4fi\n', real(V1), imag(V1) )

...通过在格式说明符中包含+,第二个数字将始终以“-”或“ +”开头,具体取决于值的符号。对于负虚数,这可以防止打印“ +-”。

答案 2 :(得分:1)

您可以使用num2str,它会自动处理复数:

fprintf(['Slope V1 = ' num2str(1+1j, '%.4f')])

fprintf('Slope V1 = %s', num2str(1+1j, '%.4f'))