tatou C++: la matrice de l'initialisation de la matrice
Je suis nouveau à l'aide de tatou, et ne pouvait pas obtenir le suivant, en dépit de l'essayer /chercher un peu.
Il y a deux énormes (dynamique) des tableaux (pas de vecteurs) que j'ai besoin pour effectuer la corrélation. J'ai décidé d'utiliser tatou pour cela. Je comprends comment initialiser arma::mat à l'aide de vecteurs, mais ce que je peux utiliser des tableaux pour le faire? Je ne comprends pas que je ne vois aucune mention dans le la documentation.
Je suis en train d'essayer d'éviter l'utilisation de vecteurs pour conception interne raisons.
J'ai essayé manuellement l'initialisation de chaque élément à l'aide de tableaux d'échantillons (comme un idiot, mais le point de départ). Quelque chose comme le code suivant ne fonctionne pas.
using namespace std;
using namespace arma;
mat A(SIZE, 1), B(SIZE, 1);
for(int i = 0; i < SIZE; i++)
{
A << v[i] << endr;
B << c[i] << endr;
}
cout << "A: " << endl;
A.print();
cout << "B: " << endl;
B.print();
Pour l'entrée des tableaux v = {1, 2, 0, -1, .9} et c = {0, .5, 1, -2, -5}. La sortie sera:
A:
0
B:
-5.0000
ce qui est compréhensible.
Tout le travail autour de l'initialisation d'arma::mat ou arma::colvector avec des tableaux? Merci à l'avance!
Oui, j'ai réalisé que << opérateur n'est pas la voie. aux_mem travaillé. Merci!
OriginalL'auteur ND_27 | 2013-10-14
Vous devez vous connecter pour publier un commentaire.
En supposant que vos tableaux v et c sont des doubles des tableaux, vous pouvez simplement utiliser l'auxiliaire de la mémoire constructeurs:
De le tatou doc:
Ce qui signifie que vous pouvez créer votre matrices par la copie de votre source de données comme ceci:
Ou vous pouvez réutiliser le mémoire que vous avez déjà alloués pour vos tableaux à créer en lecture seule matrices, comme ceci:
C'est encore plus simple si vous utilisez des vecteurs
Ou:
OriginalL'auteur Martin J.