Octave:在索引表达式中无效使用脚本
Octave: invalid use of script in index expression
我想在 Octave 中使用一个简单的代码 (plot.m
) 来绘制图形。我的代码如下:
printf('Plotting Data...\n');
x = -10:0.1:10;
plot(x, sin(x));
但我收到错误消息:
error: invalid use of script ex1/plot.m in index expression error: called from plot at line 3 column 1
能告诉我怎么解决吗?谢谢!
简答:更改脚本文件的名称。
少简答
当尝试调用函数 somefunction()
时,Octave 将首先在您的当前目录.[=37= 中查找文件 somefunction.m
]1
如果它找到一个,那么它将尝试使用该文件调用 somefunction
。
如果找不到,那么它将在其内置函数(存储在您计算机上的其他地方)中寻找它。
在您的例子中,您尝试调用 plot()
函数。
但是,您的脚本本身称为 plot.m
。
所以 Octave 首先在你的当前目录中寻找 plot.m
... 然后找到你的脚本!
它表明您的 plot.m
文件是脚本而不是函数。
不能使用参数调用脚本(例如 x
和 sin(x)
在你的情况下),这就是你收到 "invalid use of script in index expression error" 消息的原因。
因此,解决方案是将文件名更改为 plot.m
以外的名称。
1这假设当前作用域中没有名为 somefunction
的变量。如果有,变量优先。
我遇到了同样的问题,求解决
- 更改了脚本名称
- 删除了以前的脚本(旧名称且包含相同的脚本)
- 写八度提示文件名"without m"(写"file"而不是"file.m")
这是我的脚本并将其命名为"xx.m"
syms x;
f = x^3 - 6*x^2 + 11*x - 6;
ezplot(f)
xlabel("x")
ylabel("y")
title ("name")
grid on
我写的八度提示xx
或run xx
都很好。
在我看来,"invalid use of script" 问题原因是
- 你不应该用你的函数命名你的脚本。例如,当我的脚本命名为 "ezplot.m" 并且它包含 "ezplot(f)" 时,它不起作用。在脚本中更改它的名称而不是您的函数
- 如果有多个 m 文件以不同的名称包含相同的脚本,则会导致相同的错误。删除共享相同脚本的其他文件。
我想在 Octave 中使用一个简单的代码 (plot.m
) 来绘制图形。我的代码如下:
printf('Plotting Data...\n');
x = -10:0.1:10;
plot(x, sin(x));
但我收到错误消息:
error: invalid use of script ex1/plot.m in index expression error: called from plot at line 3 column 1
能告诉我怎么解决吗?谢谢!
简答:更改脚本文件的名称。
少简答
当尝试调用函数 somefunction()
时,Octave 将首先在您的当前目录.[=37= 中查找文件 somefunction.m
]1
如果它找到一个,那么它将尝试使用该文件调用 somefunction
。
如果找不到,那么它将在其内置函数(存储在您计算机上的其他地方)中寻找它。
在您的例子中,您尝试调用 plot()
函数。
但是,您的脚本本身称为 plot.m
。
所以 Octave 首先在你的当前目录中寻找 plot.m
... 然后找到你的脚本!
它表明您的 plot.m
文件是脚本而不是函数。
不能使用参数调用脚本(例如 x
和 sin(x)
在你的情况下),这就是你收到 "invalid use of script in index expression error" 消息的原因。
因此,解决方案是将文件名更改为 plot.m
以外的名称。
1这假设当前作用域中没有名为 somefunction
的变量。如果有,变量优先。
我遇到了同样的问题,求解决
- 更改了脚本名称
- 删除了以前的脚本(旧名称且包含相同的脚本)
- 写八度提示文件名"without m"(写"file"而不是"file.m")
这是我的脚本并将其命名为"xx.m"
syms x;
f = x^3 - 6*x^2 + 11*x - 6;
ezplot(f)
xlabel("x")
ylabel("y")
title ("name")
grid on
我写的八度提示xx
或run xx
都很好。
在我看来,"invalid use of script" 问题原因是
- 你不应该用你的函数命名你的脚本。例如,当我的脚本命名为 "ezplot.m" 并且它包含 "ezplot(f)" 时,它不起作用。在脚本中更改它的名称而不是您的函数
- 如果有多个 m 文件以不同的名称包含相同的脚本,则会导致相同的错误。删除共享相同脚本的其他文件。