我写了以下代码 -
for t=0:4
for i=5
B=[1,1,1,1,1;1,1,1,2,0;1,1,3,0,0;1,2,2,0,0;1,4,0,0,0;2,3,0,0,0;5,0,0,0,0];
A=B;
B(B==0)=inf;
idx = (A(:,i-t)==1 );
A = A(idx,:);
end
end
现在问题是我可以运行t=0:i-1
的代码,但我想运行此代码for t=0:i
当我尝试使用i and t
的相同值时,它会显示错误。这是因为i-t=0
所以它
表示索引是0
,但在matlab索引中永远不会是0
。
在我的情况下,当i-t=0
时,它将占用A
的所有值,但我无法为此条件编写代码。
Matlab专家我需要您的帮助和建议重新编写此代码。
答案 0 :(得分:0)
使用if
条件特别处理该案例......
if i == t
idx = (A == 1);
A = A(idx);
else
idx = (A(:,i-t)==1 );
A = A(idx, :);
end