【问题标题】:Armadillo prints the imaginary part of a complex value as negative when transposed犰狳在转置时将复数的虚部打印为负数
【发布时间】:2022-06-13 06:11:02
【问题描述】:

犰狳 print() 方法在将列向量转置为行向量时将虚值打印为其真实值的负数。这是一个错误,还是我遗漏了什么?

代码:

#include <iostream>
#include <armadillo>

int
main()
{
    arma::Col<std::complex<float>> v1 = {{1.0, 1.5}, {2.0,2.5}, {3.0,3.5}, {4.0,4.5}};
    v1.t().print("v1':");
    v1.print("v1:");
}

输出:

v1':
    (+1.000e+00,-1.500e+00)    (+2.000e+00,-2.500e+00)    (+3.000e+00,-3.500e+00)    (+4.000e+00,-4.500e+00)
v1:
    (+1.000e+00,+1.500e+00)
    (+2.000e+00,+2.500e+00)
    (+3.000e+00,+3.500e+00)
    (+4.000e+00,+4.500e+00)

【问题讨论】:

  • trans() 的文档说该函数执行 conjugate transpose 翻转虚值的符号。使用strans() 而不是trans() 来执行简单的转置。

标签: printing complex-numbers armadillo


【解决方案1】:

@hbrerkere 的评论解释说,默认的 transpose 函数是一个 conjugate transpose,它会翻转虚值的符号。使用strans() 而不是trans() 来执行简单的转置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-27
    • 1970-01-01
    相关资源
    最近更新 更多