if文をclasstification tree viewerで表示させる方法をおしえてください。

1 view (last 30 days)
masaki yamate
masaki yamate on 19 Jan 2017
Commented: mizuki on 24 Jan 2017
・if文をclasstification tree viewerで表示させたいです。理想としては、このリンクのclasstification tree viewer(https://jp.mathworks.com/help/stats/fitctree.html)のように表示させたいのですがやり方がわかりません。 どなたか教えていただけませんか。
・下記のif文の中の矩形波の中にX2のような矩形波を当てはめて、この矩形波と取得したYaw角(Yaw(121500:129500))の数値が近似した場合「○」と表示させ、近似しなかった場合、次の階層に進むようにしたいのですがどうすればよいでしょうか。
if true
% code
end
x2 = 100*square(2*pi*(0.01475)*time(121500:129500));
plot(time(121500:129500),x2,'r-',time(121500:129500),Yaw(121500:129500))
if true
% code
end
% if矩形波(○)
% disp('橋面舗装、打音検査')
% else矩形波(×)
if文ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
if true
% code
end
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
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
どなたかご存知の方がいらっしゃいましたら、教えていただけませんか。

Accepted Answer

mizuki
mizuki on 19 Jan 2017
FITCTREE 関数のドキュメントにあるようなtree viewer はルールベースドの手法ではなく機械学習の手法向けに作成されています.今回の場合は条件をあらかじめ指定するルールベースドの木を作成されたいため,残念ながらこのtree viewer を使用することはできません.そういった機能は無いため,ご自身で作成する必要があります.
二つ目の質問の○×表示はどこに表示させたいのでしょうか.tree viewerということであれば,前述の通りです. コマンドウィンドウでよければ disp 関数を使用します.
  2 Comments
masaki yamate
masaki yamate on 20 Jan 2017
ご回答くださりありがとうございます。二つ目の質問の話なのですが、矩形波と取得値が一致していたら、disp('打音検査')と設定させたいのですが、矩形波と近似しているかを判断させるコードの作り方がわかりません。
mizuki
mizuki on 24 Jan 2017
ある二つの値を比較する場合,差が0であれば一致しているとみなすことができます.例えば信号Aと信号B (両方ベクトル) を比較して一致していればdispを実行したい場合,
sum_diff = sum(A - B); % AとBの差をとり,全ての差を合計
if(sum_diff == 0)
disp('打音検査')
end
とします.

Sign in to comment.

More Answers (0)

Categories

Find more on Data Type Identification in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!