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

1 回表示 (過去 30 日間)
masaki yamate
masaki yamate 2017 年 1 月 19 日
コメント済み: mizuki 2017 年 1 月 24 日
・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
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
どなたかご存知の方がいらっしゃいましたら、教えていただけませんか。

採用された回答

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

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeData Type Identification についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!

Translated by