Matlab 倍频程:索引超过矩阵维数

Matlab 倍频程:索引超过矩阵维数,matlab,octave,Matlab,Octave,我在名为conditionals.m的文件中编写了以下函数: function result = conditionals(category, feature) result=5; end 我从Octave的命令行调用此函数: v=conditionals(3,4) 我得到以下错误: error : A(I) : Index exceeds matrix dimension. 这里怎么了?错误: 错误:A(I):索引超出矩阵维度 表示octave认为条件句是一个矩阵,而不是一个函数 O

我在名为conditionals.m的文件中编写了以下函数:

function result = conditionals(category, feature)

result=5;

end
我从Octave的命令行调用此函数:

v=conditionals(3,4)
我得到以下错误:

error : A(I) : Index exceeds matrix dimension.
这里怎么了?

错误:

错误:A(I):索引超出矩阵维度

表示octave认为
条件句
是一个矩阵,而不是一个函数

Octave可能不知道
条件词
是一个函数,而是把它当作一个矩阵

您是否检查过函数是否在Octave的搜索路径中?

错误:

错误:A(I):索引超出矩阵维度

表示octave认为
条件句
是一个矩阵,而不是一个函数

Octave可能不知道
条件词
是一个函数,而是把它当作一个矩阵

你检查过函数是否在Octave的搜索路径中了吗?

这对我很有用

octave> function result = conditionals (category, feature)
>   result = 5;
> endfunction
octave> v = conditionals (3, 4)
v =  5
错误表明您有一个与函数同名的变量。在倍频程提示符处键入
whos
,查看已定义变量的列表。如果您看到一个名为
条件
,请使用
清除条件

另外,如果conditionals是
conditionals.m
文件,请确保它位于函数搜索路径上。在倍频程提示下运行
path
,查看函数搜索路径。在命令提示下运行
哪些条件
,查看函数的位置。

这对我很有用

octave> function result = conditionals (category, feature)
>   result = 5;
> endfunction
octave> v = conditionals (3, 4)
v =  5
错误表明您有一个与函数同名的变量。在倍频程提示符处键入
whos
,查看已定义变量的列表。如果您看到一个名为
条件
,请使用
清除条件


另外,如果conditionals是
conditionals.m
文件,请确保它位于函数搜索路径上。在倍频程提示下运行
path
,查看函数搜索路径。在命令提示符下运行
which conditionals
,查看函数的位置。

这也发生在我身上,并且可以发生在任何命令上,而不管命令名如何。当我运行
PS1(“>>”)时
要更改Ovtave中的命令提示符,我遇到了相同的错误

倍频程-3.2.3.exe:9>PS1(“>>”)

错误:A(I):索引超出矩阵维度

正如其他人也提到的,当存在具有相同命令名的参数时,会触发此错误。当我们错误地使用错误的语法输入命令时,就会发生这种情况,因此,octave运行该命令并生成一个带有命令名的变量,该变量会使内部命令过载

您可以通过
who
命令验证此状态。如果在此处可以看到与命令相同的变量名,则必须将其删除。使用
clear variable\u name
删除变量

这是我对PS1命令的输出


希望它能有所帮助。

这也发生在我身上,它可以发生在任何命令上,无论命令名如何。当我运行
PS1(“>>”)时
要更改Ovtave中的命令提示符,我遇到了相同的错误

倍频程-3.2.3.exe:9>PS1(“>>”)

错误:A(I):索引超出矩阵维度

正如其他人也提到的,当存在具有相同命令名的参数时,会触发此错误。当我们错误地使用错误的语法输入命令时,就会发生这种情况,因此,octave运行该命令并生成一个带有命令名的变量,该变量会使内部命令过载

您可以通过
who
命令验证此状态。如果在此处可以看到与命令相同的变量名,则必须将其删除。使用
clear variable\u name
删除变量

这是我对PS1命令的输出

希望能有帮助