Octave 错误:can';t为<;执行索引操作;未知类型>;采购时输入

Octave 错误:can';t为<;执行索引操作;未知类型>;采购时输入,octave,Octave,使用此代码,另存为test.m function test() x = 1; endfunction 通过GUI中的source(test.m)查找时,我收到以下错误消息: >> clear >> source (test.m) x = 1 error: can't perform indexing operations for <unknown type> type error: evaluating argument list element

使用此代码,另存为
test.m

function test()
 x = 1;
endfunction    
通过GUI中的
source(test.m)
查找时,我收到以下错误消息:

>> clear
>> source (test.m)
x =  1
error: can't perform indexing operations for <unknown type> type
error: evaluating argument list element number 1
>>
>清除
>>来源(test.m)
x=1
错误:无法对类型执行索引操作
错误:正在计算参数列表元素编号1
>>
通过
>test
调用函数测试可以正常工作,但我想知道我在这里做错了什么

进度:

在正确的目录中调用just test似乎可以做到这一点,但是我们为什么要采购呢?

如果您运行

source(test.m)
解释器尝试计算变量“test”(在您的例子中是一个函数)上的“.”下标,然后调用
source
,得到结果

您需要使用字符串“test.m”调用函数
source
,因此必须使用引号:

source ("test.m")
或者不要使用()在这种情况下,所有参数都作为字符串传递:

source test.m

您的代码中一定有其他错误,但您在上面没有显示。除此之外,在不使用arrayfun的情况下使用
y=x>0
和if…else部分将更容易、更快、更可读。我只是将其复制到一个文件中。将其粘贴到
octave cli
中可以正常工作。然而,当我在
八度音程中进行源代码转换时,我仍然会得到相同的错误。“当我在八度音程中进行源代码转换时”是什么?您已经创建了一个文件foobar.m,将其中的行粘贴到Octave GUI中运行的
foobar
?这里的重要提示:运行
foobar
而不是
foobar.m
我已经重写了问题(我专注于导致错误的
arrayfun
),并详细说明了我在做什么。