2012-04-28 6 views
3

Est-ce que Aramadillo a un but général équivalent à bsxfun de matlab, qui effectue des opérations élémentaires sages, par exemple bsxfun (@ moins, A, B)? J'ai vu que l'Armadillo a une multiplication et une division élémentaires, mais aucune indication qu'une fonction généralisée est disponible.Armadillo C++: - Équivalent à bsxfun de Matlab

+0

Um, le but de bsxfun n'est PAS d'effectuer une opération sur chaque élément d'une matrice. Ce n'est pas ce que ça fait. Vous pourriez penser à arrayfun, ou cellfun. –

+0

Hmmm ... peut-être que ma définition n'était pas tout à fait correcte. Ma compréhension est le bsxfun (@ moins, A, B) effectuera une soustraction d'élément sage de chaque élément correspondant dans A et B. Evidemment je pourrais juste pour un double pour la boucle, et je remarque Armadillo a la multiplication et la division sage d'élément, mais Je ne peux pas voir un opérateur de type bsxfun plus général. – oracle3001

+0

Soupir. Mais ce n'était pas ce que vous avez demandé! Vous avez demandé une fonction qui fonctionnera sur tous les éléments d'un tableau. Lisez votre propre question. BSXFUN effectue une opération dyadique entre des paires spécifiques d'éléments de tableau dans deux tableaux distincts. Alors qu'est-ce que tu veux vraiment? –

Répondre

3

Bien que pas exactement bsxfun(), il y a deux nouvelles fonctions ajoutées à Armadillo 3.4+ qui sont liées à votre question: .each_col() et .each_row(). Ils permettent de répéter une opération vectorielle donnée sur chaque colonne/rangée d'une matrice. Cela inclut l'addition, la multiplication par éléments, etc.