我有一个矩阵rel nx8和一个第二个矩阵mx3。我想检查矩阵rel的第3列是否包含8.如果是,我转到第二个条件:如果矩阵rel的第3列等于矩阵A的第2列,则转到第三个条件并创建另外两列矩阵A中包含矩阵rel的第7列和第8列的元素。
n=size(rel)
m=length(A)
for i=1:n
for k=1:m
if rel(i,4)==8
if rel(i,3)==A(k,2)
if (rel(i,2)== A(k,1)) || (rel(i,1)== A(k,1))
A(k,4)=rel(i,7);
A(k,5)=rel(i,8);
end
end
end
i=i+1
end
端
但是我收到此消息错误:尝试访问rel(9508,4);索引越界,因为size(rel)= [9507,8]。 有谁知道我该怎么办?
答案 0 :(得分:2)
这是因为您在i
for循环中迭代变量k
。因此,当您到达k
循环时,您正在将原始i
从第一个循环加速到i+m
。这是您的错误来源,因为i+m
变得大于n
。
要看到这一点,请删除if语句,将n
和m
设置为一些合理的值(如2和3),然后运行循环,跟踪{{1 }}