我的代码按如下方式计算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
答案 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'))