我正在尝试做以下matlab函数的等效项:
outmatrix = bsxfun(@minus,inmatrix, invector);
在C锋利。我用这个:
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程序包。
我的问题:这是最有效的方法吗?因为我的矩阵可能很大。
我该如何概括这一点,以便我可以指定是否要像一个函数手柄一样进行减,加,乘,除等操作?
最佳答案
在ILnumerics中,您无需执行任何操作。 ILNumerics会自动在矩阵元素上正确操作向量:
outmatrix = inmatrix - invector;
Docu:http://ilnumerics.net/Opoverload.html
顺便说一句:如果您想高效地执行,则必须使用ILNumerics Function规则:http://ilnumerics.net/FunctionRules.html
关于c# - C#中的bsxfun类型函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26495119/