2013-05-12 36 views
-2

我只是想要一些關於Matlab函數的建議,更多的是爲了確認我做的是否正確。
這是我的代碼。matlab函數減速

function [output] = myfunc(input1, input2); 

output = input1 * input2; 

然後我叫我的主要代碼功能,如下圖所示:

res = myfunc(10, 20); 
disp(res); 

這是正確的函數的語法和將這個返回答案,是我的問題。我擔心的是,儘管名稱不同,但輸出仍然有效。

+2

沒關係。即使你用'res'調用它,它也會工作。 'output'只是一個臨時變量。我不認爲這需要一個答案。 – 2013-05-12 16:17:32

+2

如果您不確定,請嘗試一下!這是學習的最佳方式。用MATLAB玩。 – 2013-05-12 17:52:08

回答

1

outputoutput1是不同的變量,MATLAB不會從myfunc返回任何東西。

如果您問的是res,那麼在那裏使用不同的變量名是沒有問題的。您正在將返回值分配給名爲res的新變量。 (雖然它可能駐留在相同的內存位置...)

1

res = myfunc(10, 20):應該res = myfunc(10, 20);output = input1 * input2;output1 = input1 * input2;

所以你的功能將類似於:

function [output1] = myfunc(input1, input2) 
output1 = input1 * input2; 
end 
+0

剛注意到我的錯誤,糾正了它們。 – user1978826 2013-05-12 16:10:38

1

輸出參數應與功能代碼中的名稱相同,例如:

function [output1] = myfunc(input1, input2); 

output1 = input1 * input2; 

否則,在撥打res = myfunc(10, 20);時,您將收到錯誤消息,例如:Output argument "output1" (and maybe others) not assigned during call to "myfunc.m>myfunc".