0
最初のゼロを見つけ、ゼロの前後の値を比較し、ゼロとそれより小さい数を削除するコードを書きました。しかし、私はエラーが出る理由を理解していない:あなたの助けループでベクトルを消去する
Index exceeds matrix dimensions.
Error in bereinigen (line 9) C1=L(A1+1);
L=[-300 100 0 200 -100 100 0 -300 ];
A3=find(L==0);
U=length(A3);
for x=1:U
A1=A3(x);
C1=L(A1+1);
C2=L(A1-1);
B1=sign(C1);
B2=sign(C2);
if B1==B2
D1=min(C1,C2);
if D1==C1
L(A1+1)=[];
E1=find(L==0);
E1=E1(1);
L(E1)=[];
elseif D1==C2
L(A1-1)=[];
E1=find(L==0);
E1=E1(1);
L(E1)=[];
end
else
return
end
end
感謝を
あなたは*完全なベクトルから 'A3'だけを計算するので、十分な値を取り除くと' A3'で指定されたインデックスが 'L'を越える位置を潜在的に参照できるように、' L'から要素を削除しています – Suever
ah yes、あなたが正しいです!ありがとう – jdoubleu