Matlab 问题:混淆:索引必须是正整数或逻辑
我在使用MATLAB时遇到了这样一个问题: 我写了这个函数:Matlab 问题:混淆:索引必须是正整数或逻辑,matlab,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. 我知道它需要一个正整数,但为什么?我需要
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
成为现实。这里有什么问题?您能告诉我哪里错了吗?您同时声明了一个函数f
和一个变量f
。不要清除f代码>然后重试您的代码。这里发生的事情是,变量声明优先于函数,因此执行f
将首先尝试访问变量f
如果您在某处使用f
作为变量,并且无法更改此值,则将您的函数重命名为f
以外的函数。。。也许<代码>comp
或其他什么。执行此操作后,请确保更改文件名,使其名为comp.m
,然后执行以下操作:
Prob = comp(1000, lamda);
您同时声明了一个函数f
和一个变量f
。不要清除f代码>然后重试您的代码。这里发生的事情是,变量声明优先于函数,因此执行f
将首先尝试访问变量f
如果您在某处使用f
作为变量,并且无法更改此值,则将您的函数重命名为f
以外的函数。。。也许<代码>comp
或其他什么。执行此操作后,请确保更改文件名,使其名为comp.m
,然后执行以下操作:
Prob = comp(1000, lamda);
您同时声明了一个函数f
和一个变量f
。不要清除f代码>然后重试您的代码。这里发生的事情是,变量声明优先于函数,因此执行f
将首先尝试访问变量f
如果您在某处使用f
作为变量,并且无法更改此值,则将您的函数重命名为f
以外的函数。。。也许<代码>comp
或其他什么。执行此操作后,请确保更改文件名,使其名为comp.m
,然后执行以下操作:
Prob = comp(1000, lamda);
您同时声明了一个函数f
和一个变量f
。不要清除f代码>然后重试您的代码。这里发生的事情是,变量声明优先于函数,因此执行f
将首先尝试访问变量f
如果您在某处使用f
作为变量,并且无法更改此值,则将您的函数重命名为f
以外的函数。。。也许<代码>comp
或其他什么。执行此操作后,请确保更改文件名,使其名为comp.m
,然后执行以下操作:
Prob = comp(1000, lamda);
您的错误消息表明在您的工作区中有一个名为f
的变量,matlab认为您正在尝试访问它的元素。用clear('f')
删除变量f
,或者将函数重命名为其他名称,您应该会没事。您的错误消息表明您的工作区中有一个名为f
的变量,matlab认为您正在尝试访问它的元素。用clear('f')
删除变量f
,或者将函数重命名为其他名称,您应该会没事。您的错误消息表明您的工作区中有一个名为f
的变量,matlab认为您正在尝试访问它的元素。用clear('f')
删除变量f
,或者将函数重命名为其他名称,您应该会没事。您的错误消息表明您的工作区中有一个名为f
的变量,matlab认为您正在尝试访问它的元素。用clear('f')
删除变量f
,或者将函数重命名为其他函数,这样就可以了。检查工作区中是否有名为f
的变量。您的错误消息表明您试图访问矩阵f的第1000行和第0.000341565列。因此,可能是我使用f定义了两个变量,是吗?您可能定义了一个名为f
的变量和另一个名为f
@TamásSzabó的函数是的,您是对的。你能把你的答案贴出来让我接受吗?在你的帖子里你定义了函数E=f(x,lambda)
。如果您的工作区中同时有一个名为f
的变量,那么您将尝试访问该变量的元素检查您的工作区中是否有一个名为f
的变量。您的错误消息表明您试图访问矩阵f的第1000行和第0.000341565列。因此,可能是我使用f定义了两个变量,是吗?您可能定义了一个名为f
的变量和另一个名为f
@TamásSzabó的函数是的,您是对的。你能把你的答案贴出来让我接受吗?在你的帖子里你定义了函数E=f(x,lambda)
。如果您的工作区中同时有一个名为f
的变量,那么您将尝试访问该变量的元素检查您的工作区中是否有一个名为f
的变量。您的错误消息表明您试图访问矩阵f的第1000行和第0.000341565列。因此,可能是我使用f定义了两个变量,是吗?您可能定义了一个名为f
的变量和另一个名为f
@TamásSzabó的函数是的,您是对的。你能把你的答案贴出来让我接受吗?在你的帖子里你定义了函数E=f(x,lambda)
。如果您的工作区中同时有一个名为f
的变量,那么您可以尝试