[英]Equivalent in Octave / Matlab for R head() and tail() functions
[英]Matlab / Octave - trouble getting started with functions, is there a function main equivalent?
我正在嘗試開始使用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
我已嘗試將函數放在第一位,將測試部分放在第二位,並將函數放在一個單獨的文件中,並在同一目錄中調用my.dd函數的main.m文件,都會導致錯誤。
所以這是我的問題:
- 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中組織功能,請告知,謝謝。
如果你來自像python這樣的語言,Matlab / Octave可能會有點混亂。 為了定義一個函數(不使用匿名函數),您需要創建一個具有該函數名稱的單獨文件,然后可以使用命令行調用該文件。
例如,您想創建一個名為myadd
的函數。 您應該創建一個名為myadd.m
的文件,其內容將是:
function out = myadd(a,b)
out = a+b;
end
然后,只要您的文件在您的路徑上(將其保存到MATLAB文件夾或將其放在當前工作目錄中),您可以從命令窗口調用它,如下所示:
>> myadd(5,6)
ans =
11
每個文件(名稱與文件名匹配的文件)只能公開使用一個函數。 但是,如果您計划僅使用該函數,則仍可以為每個文件定義多個函數。 例如,如果您有一個名為foo.m
的文件,則可以執行以下操作:
function out = foo(a,b)
out = fun(a,b);
end
function out = fun(a,b)
out = a * b;
end
這將允許您從命令窗口調用foo(5,6)
,但fun(5,6)
將導致錯誤: Undefined function or variable 'fun'
。
希望這有用!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.