1

在 R 中,给定一个向量 G

> G <- c(-0.44852453+0i, -0.40701659+0i, -0.65381971+0i, -0.37545331+0i, -0.05763717+0i, -0.24778175+0i)

我可以像这样形成 G 中所有条目的比率:

> B<-outer(G, G, FUN='/')
> 
> B
             [,1]         [,2]          [,3]         [,4]         [,5]         [,6]
[1,] 1.0000000+0i 1.1019810+0i 0.68600644+0i 1.1946213+0i  7.781862+0i 1.8101597+0i
[2,] 0.9074567+0i 1.0000000+0i 0.62252114+0i 1.0840671+0i  7.061703+0i 1.6426415+0i
[3,] 1.4577123+0i 1.6063712+0i 1.00000000+0i 1.7414142+0i 11.343716+0i 2.6386920+0i
[4,] 0.8370853+0i 0.9224521+0i 0.57424593+0i 1.0000000+0i  6.514083+0i 1.5152581+0i
[5,] 0.1285039+0i 0.1416089+0i 0.08815453+0i 0.1535135+0i  1.000000+0i 0.2326127+0i
[6,] 0.5524375+0i 0.6087756+0i 0.37897565+0i 0.6599536+0i  4.298992+0i 1.0000000+0i

在 eigen3 中是否有一种简单的方法可以做到这一点?

所以我可以用 C++ 做

std::cout << vec1 * vec1.transpose() << std::endl;

但我做不到

std::cout << vec1 / vec1.transpose() << std::endl;

你会认为既然 a / b = a * (1 / b) 就会有一个简单的方法来做到这一点。

4

1 回答 1

0

这有效

std::cout << vec1.col(0) * vec1.col(0).cwiseInverse().transpose() << std::endl;

于 2015-01-01T15:54:06.500 回答