if文の作り方を教えてください。

226 views (last 30 days)
masaki yamate
masaki yamate on 20 Jan 2017
Commented: masaki yamate on 25 Jan 2017
if文の中の矩形波の中にX2のような矩形波を当てはめて、この矩形波と取得したYaw角(Yaw(121500:129500))の数値が近似した場合、disp('打音検査')と表示させたいのですが、近似式と取得した値が一致しているかを判断させるコードの作り方がわかりません。近似しなかった場合、次の階層に進むようにしたいのですがどうすればよいでしょうか。
x2 = 100*square(2*pi*(0.01475)*time(121500:129500));
plot(time(121500:129500),x2,'r-',time(121500:129500),Yaw(121500:129500))
% if矩形波(○)
% disp('橋面舗装、打音検査')
% else矩形波(×)
if文ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
x=142%梯子下内の閾値設定
for k=1:12
fprintf('%2.0f\n',k);
if (data6(k,8)<-15);
% 右(ピンク)
if (data6(k,11)>=300);
disp('再橋梁下内からの確認シーン')
else(data6(k,11)<300);
disp('橋梁下内からの確認シーン')
end
elseif(data6(k,8)<10 & data6(k,8)>=-15);
% 真ん中(紫)
if(data6(k,7)<=50);
disp('全景')
else(data6(k,7)>50);
disp('上流からの確認シーン')
end
else(10>data6(k,8));% 左(緑)
if(data6(k,24)<x);
disp('下流/再下流からの確認シーン')
else(data6(k,24)>=x);
% if矩形波(○)
% disp('橋面舗装、打音検査')
% else矩形波(×)
if(data6(k,23)>=3);
disp('支承と橋台裏確認')
elseif(data6(k,23)<3);
if(data6(k,2)<-60);
disp('排水装置')
elseif(data6(k,2)>=-60);
if(data6(k,8)>=40);
disp('伸縮装置')
elseif(data6(k,8)<40);
if(data6(k,24)<x+3);
disp('地ふく')
elseif(data6(k,24)>=x+3);
disp('こうらん')
end
end
end
end
end
end
end
  4 Comments
Tohru Kikawada
Tohru Kikawada on 23 Jan 2017
下記の内容に関連していますでしょうか。
masaki yamate
masaki yamate on 23 Jan 2017
はい、関連しております。

Sign in to comment.

Accepted Answer

Tohru Kikawada
Tohru Kikawada on 24 Jan 2017
たとえば平均二乗誤差がある値よりも小さくなったら処理を進めるような処理は下記のように記載できます。
mse = mean((x2-Yaw(121500:129500)).^2);
if mse < 0.01
disp('橋面舗装、打音検査');
else
% それ以外の処理
end
  2 Comments
Takuji Fukumoto
Takuji Fukumoto on 24 Jan 2017
2つの波形の平均二乗誤差の算出についてはTohruさんが書かれたとおりかと思います。
数式と波形では差が大きいので、
立ち上がり時間やパルス幅、周波数など測定で評価することもできるかもしれません。
masaki yamate
masaki yamate on 25 Jan 2017
ありがとうございます。拝借した結果反映されました。 これを参考にフローを作成させていただきます。

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!