我创建了一个简单的函数,它使用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)
答案 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
你将得到你描述的错误(没有足够的输入参数)。