问题:令人困惑:索引必须是正整数或逻辑

时间:2015-05-19 17:38:52

标签: matlab

我使用MATLAB遇到了这样的问题:

我写了这个函数:

function E = f(x, lamda)

E = 1 - exp(-lamda * x);

end

我写的时候:Prob = f(1000, lamda); lamda = 3.4274e-004 我收到这个错误:

??? Attempted to access f(1000,0.000341565); index must be a positive integer or logical.

我明白它需要一个正整数,但为什么呢?我需要lamda才是真实的。这里的问题是什么?请你告诉我我哪里错了?

2 个答案:

答案 0 :(得分:2)

您同时声明了一个函数f和一个变量f。然后clear f;再次尝试您的代码。这里发生的是变量声明优先于您的函数,因此f会首先尝试访问变量f

如果您在某处使用f作为变量并且无法更改此内容,则重命名您的函数将不是f。 ..也许...... comp或其他什么。执行此操作后,请务必更改文件名,以便将其命名为comp.m,然后执行以下操作:

Prob = comp(1000, lamda);

答案 1 :(得分:1)

您的错误消息表明您的工作区中有一个名为dplyr的变量,而matlab认为您正在尝试访问其元素。使用f删除变量f或将该函数重命名为其他内容,您应该没问题。