【发布时间】:2016-01-22 16:55:54
【问题描述】:
我正在尝试开始使用 Matlab / Octave,并且很难弄清楚如何将程序组织成函数。目前我正在尝试编写一个简单的程序,将两个数字相加并显示结果,相加是由一个函数完成的。我原以为这会奏效:
% test.m
close all;
clear all;
num1 = 2;
num2 = 2;
result = myAdd(num1, num2);
disp(result); % this should display 4 ??
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function retval = myAdd(var1, var2)
retval = var1 + var2;
end
使用 Octave 4.0.0 运行上述程序,我收到以下错误:
error: 'myAdd' undefined near line 7 column 10
error: called from
test at line 7 column 8
我也尝试过将函数放在第一位,将测试部分放在第二位,并将函数放在单独的文件中,并在同一目录中有一个 main.m 文件调用 myAdd 函数,都会导致错误。
所以这是我的问题:
-Matlab / Octave 是否有一个主要的等价物??
-解释器如何知道从哪里开始?它会自动转到程序的第一行,还是可以使用某个函数名称使其以该函数开头,因为函数 main() 在 C/C++ 中??
-在一个很大的 Python 程序中,我通常的做法是按如下方式组织事物:
# some_python_program.py
import abc
import xyz
###################################################################################################
def main():
# stuff to get program started here
# end main
###################################################################################################
def function1():
# specific function here
# end function
###################################################################################################
def function2():
# specific function here
# end function
###################################################################################################
if __name__ == "__main__":
main()
有没有办法在 Matlab/Octave 中做同样的事情??
如果有人可以就主要等价物和/或如何在 Matlab/Octave 中组织函数提供一些指导,请告知,谢谢。
【问题讨论】:
标签: matlab