2014-04-02 46 views
0

我是matlab新手,搜索所有內容。我正在寫一個函數。我無法理解爲什麼這個錯誤是肯定的:「輸入參數」b「未定義。」 。我應該初始化b = 0嗎?而它是來自輸入控制檯的參數。我的代碼:輸入參數「b」未定義

function f = evenorodd(b) 
%UNTITLED2 Summary of this function goes here 
%zohaib 
% Detailed explanation goes here 
%f = b;%2; 
f = [0 0]; 
f = rem(b,2); 
if f == 0 
    disp(b+ 'is even') 
else 
    disp(b+ 'is odd') 

end 

控制檯:

??? Input argument "b" is undefined. 

Error in ==> evenorodd at 6 
f = rem(b,2); 
+0

唉,你的「控制檯」的一部分是不完整的。尤其是電話缺失。如果你做'evenor'或'evenorodd()','b'確實是不確定的。相反,你應該調用'evenorodd(1)','evenorodd(2)','evenorodd(any_variable)'或者其他什麼。 – glglgl

回答

0

從我所看到的,這是你正在嘗試做的:

function f = evenorodd(b) 

f = rem(b,2); 
if f == 0 
    fprintf('%i is even\n', b) 
else 
    fprintf('%i is odd\n', b) 

end 

======================= 

>> evenorodd(2); 
2 is even 
  1. 無需初始化f[0,0]
  2. 在MATLAB中,你不能連接一個數字和字符串與+運算符。使用fprintf
  3. 上述功能evenorodd採用一個參數(整數),返回0或1
+0

似乎如此。但是這是完全一樣的......尤其是,你的回答不處理'輸入參數'b「是未定義的部分。 – glglgl

+0

謝謝。現在正在工作。但清楚我如何返回?就像在C++中一樣,我們編寫「return」語句。這是如何返回? – user3440716

+0

你可以在函數的任何地方使用'return'語句來返回。返回值由上述函數中的'f'指定('函數f ='部分)。所以如果你沒有設置f值就返回函數,它會給你一個錯誤。 – ysakamoto