使用for循环检查位置,没有足够的输入参数 - Matlab

时间:2015-10-06 00:43:00

标签: matlab for-loop input arguments tic-tac-toe

我创建了一个简单的函数,它使用for循环在数组的行和列之间循环。循环是名为checktakentest的函数的一部分(因为我正在测试此方法atm)。我一直收到输入参数不足的错误。

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)

1 个答案:

答案 0 :(得分: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> 1并且n> 2的mxn矩阵,你就不会出错。

如果你这样称呼它:checktakentest你将得到你描述的错误(没有足够的输入参数)。