在matlab中获取索引超出矩阵维度错误

时间:2014-03-06 20:14:29

标签: matlab function

我有这个脚本:

function [ G ] = evalF( F,x,n )

    G=zeros(n,1);
    xcell = num2cell(x);

    for i=1:n
        f = F(i)
        a = f(xcell{:})
    end

end

并定义了这两个变量:

F = 

    @(x1,x2)6+2*x1^1+3*x2^2    @(x1,x2)3+3*x1^1+2*x2^2

x =

     1     2

当我像这样运行时:

evalF(F,x,2)

但是我收到了错误:

Index exceeds matrix dimensions.

Error in evalF (line 8)
        a = f(x{:})

我看不出有什么问题...... 有人可以帮忙吗?

我把一个数组变成了参数,有关它的更多信息在这里 How to split an array as argument values in matlab?

1 个答案:

答案 0 :(得分:2)

这是因为它试图索引f而不是运行存储在f中的函数。为什么? f是一个包含函数句柄而不是函数句柄的单元格。

使f成为函数句柄:

f = F{i};