gpt4 book ai didi

octave - 运行包含函数定义的 Octave 脚本文件

转载 作者:行者123 更新时间:2023-12-01 07:23:28 24 4
gpt4 key购买 nike

我有一个非常新手的 Octave 音程问题。
在 Octave 控制台中运行此代码工作正常:

function fibo = recfibo(n)
if ( n < 2 )
fibo = n;
else
fibo = recfibo(n-1) + recfibo(n-2);
endif
endfunction
disp(recfibo(5))

通过将此代码插入名为例如 file.m 的外部文件中,并通过 octave file.m 执行它出现错误:

warning: function name 'recfibo' does not agree with function filename '/Users/admin/Google Drive/file.m' error: 'n' undefined near line 2 column 8 error: called from octave at line 2 column 3



我应该如何解决这个特殊问题?

最佳答案

添加 1;作为文件的第一行:

1;

function fibo = recfibo(n)
if ( n < 2 )
fibo = n;
else
fibo = recfibo(n-1) + recfibo(n-2);
endif
endfunction

disp(recfibo(5))

任何以函数定义开头的 M 文件都是函数 M 文件,而不是脚本 M 文件。通过在顶部添加无意义的语句,您将其变成了脚本。

在 MATLAB 中(从最近开始),脚本 M 文件可以在脚本末尾定义函数。你会在那里放 disp在文件顶部的行,并有 function块在最后,后面没有任何脚本行。但是,Octave 要求在使用函数之前先定义它们,因此它必须位于使用该函数的脚本行之前。 Octave 允许在 MATLAB 引入该功能之前在脚本文件中定义函数,因此它们的实现与 MATLAB 的实现不兼容。

关于octave - 运行包含函数定义的 Octave 脚本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54013267/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com