Bonjour à toutes et à tous !
Je cherche à reduire un vecteur de matrice en une seule matrice, utilisant pour les cumuler avec un foncteur (par exemple une moyenne arithmétique, mais pas que).
En gros j'ai ces deux matrices :
et je veux :
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
J'ai cherché un algo tout fait, j'ai pas trouvé, donc j'ai bricolé, donc ça marche pas, en plus d'être sans doute très peu efficace : classique and "so me".
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
Le foncteur à appliquer à la collection de matrice accepte comme entrée un vecteur de double. Donc j'ai voulu ré-associer les valeurs en montant petit à petit une matrice de vecteurs (tempMat par la suite) qui contient toutes les valeurs que le foncteur doit moyenner.
Et je voulais ainsi utiliser l'algorithme std::transform pour faire un :
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
Mais ça ne marche pas. Quelqu'un peut me dire ce qui cloche dans le code suivant ? J'ai l'impression que le compilateur se plaint d'un typage un peu trop compliqué. Je suis censé le simplifier ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part std::transform(tempMat.data().begin(), tempMat.data().end(), result.data().begin(), m_averagingMethod);
Le message d'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Un grand merci d'avance !!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11

 

 
		
		 
         
 

 
			
			

 
			 
   
 


 std::transform sur des boost matrix
 std::transform sur des boost matrix
				
 Répondre avec citation
  Répondre avec citation

 
 
 
 
Partager