2015-10-06 82 views
0

我做了一個簡單的函數,使用循環數組的行和列之間循環。該循環是名爲checktakentest的函數的一部分(因爲我正在測試此方法atm)。我不斷收到沒有足夠輸入參數的錯誤。檢查與循環,沒有足夠的輸入參數的位置 - Matlab的

function [spotTaken] = checktakentest(tttArray) 
for h = 1:3 
    if tttArray(h,j) == 1 
    %Is spot is taken, break loop 
     spotTaken = 1; break; 
    else 
     spotTaken = 0; 
    end 
    for j=1:3 
     if tttArray(h,j) == 1 
      spotTaken = 1; break; 
     else 
      spotTaken = 0; 
     end 
    end 
end 

我試圖還限定H和J先前如下

h = [1,2,3]; 
j = [1,2,3]; 

注意tttArray是在另一個函數定義的全局變量及其數組值在函數而變化。拍攝的地方是1,空爲0。我應該通過什麼函數的自變量和我怎麼知道通過哪些,因爲這一直是一個反覆出現的問題給我嗎?一個簡單的解釋將不勝感激。請注意,我所說的通過

checktakentest(tttArray) 

回答

2

功能只需卸下第一if條款 - 在你沒有j初始化值這一點,所以你不能使用它,但:

function [spotTaken] = checktakentest(tttArray) 
for h = 1:3 
    for j=1:3 
     if tttArray(h,j) == 1 
      spotTaken = 1; break; 
     else 
      spotTaken = 0; 
     end 
    end 
end 

如果你打電話給你的功能是這樣的:checktakentest(tttArray)tttArray有m個beeing一個MXN矩陣> 2和n> 2,你不應該得到一個錯誤。

如果你這樣稱呼它:checktakentest你會得到你描述的(沒有足夠的輸入參數)的誤差。

相關問題