0
矩陣我想問一下是否有人知道這是爲什麼不工作:乘法 - 由虛數單位
例如,讓
SparseMatrix<int> A
和
SparseMatrix<std::complex<float> > B
我想做下面的數學計算:
B = i * A
作爲代碼:
std::complex<float> c;
c=1.0i;
B=A.cast<std::complex<float> >()*c;
或等效的:
B=A.cast<std::complex<float> >()*1.0i;
我期望A的所有實數值成爲B假想但 只有零爲(0,0)。
例子:
#include <Eigen/Sparse>
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace Eigen;
using std::cout;
using std::endl;
int main(int argc, char *argv[]){
int rows=5, cols=5;
SparseMatrix<int> A(rows,cols);
A.setIdentity();
SparseMatrix<std::complex<float> > B;
std::complex<float> c;
c=1i;
B=A.cast<std::complex<float> >()*1.0i;
//B=A.cast<std::complex<float> >()*c;
cout << B << endl;
return 0;
}
編譯: G ++ [名]的.cpp -o [名]
我在做什麼錯?
非常感謝您的幫助!
如果您使用我而不是我,這有幫助嗎?我在c標準中讀到(也許在這種情況下,它是不同的),我不反駁這個虛構的單位。否則,你應該不是<#include complex>,它會定義小寫字母i? –
以上應該說#包括 –
感謝您的建議!不幸的是我得到了同樣的結果。 – nik