MATLAB: If文の作り方

if statementMATLAB日本語

指定のセルの区間において、セル(Yaw)の数値が50行続けて100を超えていたら、それは正しいというような文を作りたいのですが、どうすればよいでしょうか。 for k=1:end Yaw(k;1)>100
上のようなコードに追加して、セルの数値が指定の範囲で50行続けて100を超えていたらのような文を作りたいのですがどうすればよいでしょうか。

Best Answer

連続してしきい値を超えているかは下記の方法で判定することができます。 こちらも合わせてご参照ください。
% 信号を作成
t = (0:500)';
Yaw = abs(400*sin(2*pi*(t-50)/200)+200);
% 100以上の箇所を判定
T = 100; % 値のしきい値
over100 = Yaw > 100;
% 時系列で信号変化のある箇所を検出
f = find([false;over100]~=[over100;false]);
% 1の期間の幅が50以上の箇所を抽出
N = 50; % 期間のしきい値
g = find(f(2:2:end)-f(1:2:end-1)>=N);
% 時間を取得
t_start = t(f(2*g-1));
% 可視化
figure;
subplot(211), plot(t,Yaw);
hold on;
plot([t(1) t(end)],[T T]);
subplot(212), plot(t,over100);
hold on;
stem(t_start,ones(numel(t_start),1));
実行結果
t_start =
42
242
442