出力は常に 2 つの値ですが、それは 1 つだけであると想定されています ..
s は構造体です。
1x1024 struct array with fields:
ID
s1
s2
s3
s4
PB1
PB2
PB3
PB4
eG
next
私は次のループを持っています:
for t=1:length(s)
if s(t).eG==0
if s(t).s1==1
if s(t).PB1==0
slackp(t)=0;
elseif s(t).PB1==1
slackp(t)=350;
elseif s(t).PB1==2
slackp(t)=600;
elseif s(t).PB1==3
slackp(t)=750;
end
end
if s(t).s2==1
if s(t).PB2==0
slackp2(t)=0;
elseif s(t).PB2==1
slackp2(t)=500;
elseif s(t).PB2==2
slackp2(t)=620;
elseif s(t).PB2==3
slackp2(t)=785;
end
end
end
end
ただし、次のステートメントで t=2 にあることに気付きました
elseif s(t).PB1==1
slackp(t)=350;
それは常に印刷されます
slackp(1)=[0 350]
エラーは繰り越され、他の複数のエントリにはそれらと一緒に 0 が含まれています!! なぜこうなった ?私はちょうど 350 を格納しようとしています。そこに 0 は必要ありません。
問題のデバッグを試みたところ、s1 が 1 でない場合は常に 0 が出力されることに気付きました。s1 がそうでない場合は1
、IF ステートメントをスキップします。s2も同様です。