我使用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
才是真实的。这里的问题是什么?请你告诉我我哪里错了?
答案 0 :(得分:2)
您同时声明了一个函数f
和一个变量f
。然后clear f;
再次尝试您的代码。这里发生的是变量声明优先于您的函数,因此f
会首先尝试访问变量f
。
如果您在某处使用f
作为变量并且无法更改此内容,则重命名您的函数将不是f
。 ..也许...... comp
或其他什么。执行此操作后,请务必更改文件名,以便将其命名为comp.m
,然后执行以下操作:
Prob = comp(1000, lamda);
答案 1 :(得分:1)
您的错误消息表明您的工作区中有一个名为dplyr
的变量,而matlab认为您正在尝试访问其元素。使用f
删除变量f
或将该函数重命名为其他内容,您应该没问题。