在 matlab 中按列应用具有多个输入的函数



使用几列作为参数在矩阵上应用函数,以应用具有多个插补的函数。

A = [1 2 3];
B = [4 5 6];
C = [7 8 9];
% This is the function I want use,
bsxfun(@(x,y,z) 1/(sqrt(2*pi*z)) * exp((-(x-y).^2)/(2*z)), A, B, C)

但不起作用,仅适用于两个插值:

bsxfun(@(x,y) x+y, A, B)

bsxfun的错误输出是:

error: Invalid call to bsxfun.  Correct usage is:
 -- bsxfun (F, A, B)

这说明我不能用超过 2 个输入来做到这一点。

函数的预期计算基本上是:

[1/(sqrt(2*pi*C1))*exp((-(A1-B1).^2)/(2*C1))
    1/(sqrt(2*pi*C2))*exp((-(A2-B2).^2)/(2*C2))
    1/(sqrt(2*pi*C3))*exp((-(A3-B3).^2)/(2*C3))]

分别A1,B1,C1 A,B,C的第一个元素到 N 是向量的 N 个元素(长度相同)

result = [ 0.079 0.08 0.08 ]
这里

不需要bsxfun。您只需要适当地定义函数句柄。

f =  @(x,y,z) 1./(sqrt(2*pi*z)).*exp((-(x-y).^2)./(2*z));

现在您的预期结果是:

f(A,B,C)

相关内容

  • 没有找到相关文章

最新更新