Функция типа bsxfun в c #

1

Я пытаюсь сделать эквивалент следующей функции matlab:

outmatrix = bsxfun(@minus,inmatrix, invector);

в с острым. Я использовал это:

public static ILArray<double> bsxfun(ILArray<double> inmatrix, ILArray<double> invector)
    {

        for(int i=0; i < inmatrix.getlength(1) ;i++)
        {
            inmatrix[":",i] = inmatrix[":",i] -invector;
        }
        return inmatrix;

    }

Использование пакета ILNumerics.

Мои вопросы: это самый эффективный способ? потому что мои матрицы могут быть большими. Как я могу обобщить это, чтобы я мог указать, нужно ли делать минус, плюс, раз, делиться и т.д., Например, с помощью ручки funciton?

Теги:
ilnumerics

2 ответа

3
Лучший ответ

В ILnumerics вам не нужно ничего делать. ILNumerics автоматически управляет вектором на матричных элементах:

 outmatrix = inmatrix - invector; 

Документ: http://ilnumerics.net/Opoverload.html

BTW: если вам нужна эффективная реализация, вы должны использовать правила функции ILNumerics: http://ilnumerics.net/FunctionRules.html

1

Самый эффективный способ - не самый простой в обслуживании. Сделайте одну проверку для оператора и повторите цикл for для каждого другого оператора.

  • 0
    Благодарю. так что вы бы порекомендовали простой двойной цикл?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню