c#中的bsxfun类型函数
本文关键字:函数 类型 bsxfun 中的 | 更新日期: 2023-09-27 18:27:18
我正在尝试做以下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
BTW:如果你想要高效的实现,你必须使用ILNumerics函数规则:http://ilnumerics.net/FunctionRules.html
最有效的方法不是最容易维护的。对操作员进行一次检查,并对每个不同的操作员重复for循环。