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. 我知道它需要一个正整数,但为什么?我需要

我在使用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
成为现实。这里有什么问题?您能告诉我哪里错了吗?

您同时声明了一个函数
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
的变量,那么您可以尝试