2016-08-09 7 views
-4

ライブラリのEigenでC++でベクトルの一部を選択したいと思いますか?ベクトルの一部をC++とEigenで選択

私は、このベクトルがあれば意味:

a << 2, 8, 2; 

VectorXd v(6); 
v << 1, 2, 3, 8, 1, 2; 

をこのベクトルを返す関数がありますか?

私はベクトルの一部だけを選択する方法を知っているので、2つではなく1つのステップでしか知りません。

答えて

2

この特有のことを行う機能はありません。もしそうなら、それはおそらくeigen block operationsの下にあるでしょう。あなたの最善の策はあなた自身の関数を書くことでしょう。これに似た何か:

void addConsecutiveSpacedElements(VectorXd &out, const VectorXd &in, int start, int space) { 
    int index = 0; 
    for (int in_index = start, in_index < in.size(); in_index += space) { 
     out[index++] = in[in_index]; 
    } 
} 

... 

addConsecutiveSpacedElements(a, v, 1, 2); 

注:これは、本質的に疑似コードであるため、それはまた、テストされていないエラーなどをチェックしていません。

関連する問題