2012-04-28 2 views
3

Имеет ли Aramadillo общий смысл, эквивалентный bsxfun от matlab, который выполняет элементарные операции, например bsxfun (@ минус, A, B)? Я видел, что у Армадилло есть элементарное умножение и деление, но нет указания на то, что существует обобщенная функция.C++ Armadillo: - эквивалентно bsxfun Matlab

+0

Um, целью bsxfun НЕ является выполнение операции над каждым элементом матрицы. Это не то, что он делает. Вы МОЖЕТЕ думать о arrayfun, или cellfun. –

+0

Хммм ... может быть, мое определение было не совсем правильным. Я понимаю, что bsxfun (@ минус, A, B) выполнит элементное умножение каждого соответствующего элемента в A и B. Очевидно, я мог бы просто для цикла double, и я замечаю, что Armadillo имеет мудрый умножение и деление, но Я не вижу более общего оператора типа bsxfun. – oracle3001

+0

Вздох. Но это не то, о чем вы просили! Вы попросили функцию, которая будет работать с каждым элементом массива. Прочтите свой вопрос. BSXFUN выполняет двоичную операцию между определенными парами элементов массива в TWO различных массивах. Так что же вы действительно хотите? –

ответ

3

В то время как не точно bsxfun(), есть два новых функции, добавленных к Armadillo 3.4+, которые относятся к вашему вопросу: .each_col() и .each_row(). Они позволяют повторять заданную векторную операцию в каждом столбце/строке матрицы. Это включает в себя добавление, умножение по элементам и т. Д.

Смежные вопросы