2015-10-06 61 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你会得到你描述的(没有足够的输入参数)的误差。

相关问题