matlab函数中的匿名函数数组

matlab函数中的匿名函数数组,matlab,anonymous-function,Matlab,Anonymous Function,我在函数的a端定义了一个匿名函数数组,如下所示 function test(x,y) f={@(x,y) (3*y*x^2) @(x,y) (x*y) @(x,y) (x*2*y^2) @(x,y) (2*x*y)} res2=f{2}(x,y)-2*f{1}(x,y) res3=f{3}(x,y)-5*f{2}(x,y) res4=f{4}(x,y)-4*f{2}(x,y)) end 我想得到一个3乘10的矩阵 x=2 y=lin

我在函数的a端定义了一个匿名函数数组,如下所示

function test(x,y)

    f={@(x,y) (3*y*x^2)
       @(x,y) (x*y)
       @(x,y) (x*2*y^2)
       @(x,y) (2*x*y)}
res2=f{2}(x,y)-2*f{1}(x,y)
res3=f{3}(x,y)-5*f{2}(x,y)
res4=f{4}(x,y)-4*f{2}(x,y))
    
end
我想得到一个3乘10的矩阵

x=2
y=linspace(0.0001,0.001,10)
for i=1:length(y)
final(i)=test(x,y(i));
end
但是,我得到一个错误,说明有太多的输入变量。我怎样才能纠正这个问题

function test(x,y)
此函数不返回任何内容。因此,在主代码中,您要求的输出参数太多

您可以将返回的函数定义为:

function [output1, output2 , ... , outputn]=f(input1, input2, ... , inputn)
在您的情况下,不确定您想要什么,因为您的主循环只捕获1个输出,但在函数中您计算了3个变量

此函数不返回任何内容。因此,在主代码中,您要求的输出参数太多

您可以将返回的函数定义为:

function [output1, output2 , ... , outputn]=f(input1, input2, ... , inputn)

不确定您想要什么,因为您的主循环只捕获1个输出,但在函数内部您计算3个变量。

我希望我的主循环根据我的linspace定义,即3×10矩阵,输出res2、res3、res4 10次。@user9106985然后定义
函数[res2、res3、res4]=test(x,y)
,但是您需要用其他东西捕获输出,比如
final(:,i)
谢谢!稍后我将对此进行检查。我希望我的主循环根据我的linspace定义,即3乘10矩阵,输出res2、res3、res4 10次。@user9106985然后定义
函数[res2、res3、res4]=test(x,y)
,但您需要用其他东西捕获该输出,如
final(:,I)
谢谢!我稍后会检查这个。你想完成什么?你的语法没有多大意义。您是否希望
test
返回三个值?让它返回一个3值向量,然后说
final(:,i)=test(x,y(i))
。然后做最后的!你想完成什么?你的语法没有多大意义。您是否希望
test
返回三个值?让它返回一个3值向量,然后说
final(:,i)=test(x,y(i))
。然后做最后的!