Jim*_*Jim 8 matlab string-formatting
我有一个复数,我想使用fprintf命令作为文本输出.我没有看到复数的格式规范.是否有捷径可寻?
使用定点的格式规范仅输出实部.
数字转换仅打印复数的实部.
因此,对于复杂的值,z您可以使用它
sprintf('%f + %fi\n', z, z/1i)
Run Code Online (Sandbox Code Playgroud)
例如
>> z=2+3i;
>> sprintf('%f + %fi\n', z, z/1i)
2.000000 + 3.000000i
Run Code Online (Sandbox Code Playgroud)
您可以将其包装在匿名函数中,以便将其轻松地作为字符串
zprintf = @(z) sprintf('%f + %fi', z, z/1i)
Run Code Online (Sandbox Code Playgroud)
然后
>> zprintf(2+3i)
ans =
2.000000 + 3.000000i
Run Code Online (Sandbox Code Playgroud)
分别处理实部和虚部:
x = -sqrt(-2)+2;
fprintf('%7.4f%+7.4fi\n',real(x),imag(x))
Run Code Online (Sandbox Code Playgroud)
或先转换为字符串 num2str()
num2str(x,'%7.4f')
Run Code Online (Sandbox Code Playgroud)