matlab中多输入逐列应用函数

matlab中多输入逐列应用函数,matlab,bsxfun,Matlab,Bsxfun,在矩阵上应用函数,使用多个列作为参数,以应用具有多个输入的函数 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 cal

在矩阵上应用函数,使用多个列作为参数,以应用具有多个输入的函数

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是向量的元素数(长度相同)


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

f =  @(x,y,z) 1./(sqrt(2*pi*z)).*exp((-(x-y).^2)./(2*z));
现在,您的预期结果是:

f(A,B,C)

完成,语法编辑,预期结果和错误解释。thx的修订:)使用倍频程,但我希望在matlab中使用它,它们在这种情况下有相同的语法问题吗?一旦在我的matlab软件中运行这个,我会更新帖子。太好了,所以我会将警告修改为matlab警告,因为这将是我的开发环境。太好了!我不知道如何解决这个问题,我来自python,谢谢!
f(A,B,C)