tebleにフィルターをかけるには

19 visualizaciones (últimos 30 días)
chihiro kanada
chihiro kanada el 2 de Jun. de 2019
Comentada: Kenta el 3 de Jun. de 2019
##やりたいこと
MatlabでCSVを取り込み、データセットに分けて解析をしたいと思っていますが、
データセットに分けるところで苦戦をしています。
具体的には以下のような操作を考えています。
db =
date color name field number
______ ______ ____ ___ __
2016/10/13 グリーン tanaka 1号 3.4848
2016/10/17 グリーン tanaka 1号 17.576
2016/10/22 グリーン tanaka 2号 14.697
2016/10/25 グリーン tanaka 2号 28.939
2016/10/29 グリーン tanaka 2号 56.818
.....(略)
fieldlst = [1号, 2号, 3号.....]
while fieldlst(i)
  sample = 「field == fieldlst(i)となるような行だけを抽出したもの」
  .....分析処理......
  i = i+1
↑上記"sample"の作り方がわかりません。
##試したこと
公式ドキュメントのtableは参照しましたが、該当ページを見つけることができませんでした。
*公式ドキュメント
https://jp.mathworks.com/help/matlab/tables.html?s_tid=CRUX_lftnav
##補足情報(FW/ツールのバージョンなど)
R2019 使用

Respuesta aceptada

Kenta
Kenta el 2 de Jun. de 2019
clear;clc
load tbl
field=tbl.field;
for i=1:max(field)
field_idx=find(field==i);
tbl_extracted=tbl(field_idx,:);
name=sprintf('%d_data.mat',i);
save(name, 'tbl_extracted')
end
上の具体例の表に似たものをtblとして保存しています。
tbl.(ドット)という形でfieldにアクセスして、ループ内で、条件に合うものを探していけばよいと思います。
詳細な形式がわからないので、このまま使えるかは不明ですが、おおよそこのような形で望むデータが得られると思います。
  2 comentarios
chihiro kanada
chihiro kanada el 2 de Jun. de 2019
詳細が不明瞭にもかかわらず、アドバイスいただきありがとうございます!!
インデックスを作って、条件に合うものを抽出するということですね。
Kenta
Kenta el 3 de Jun. de 2019
はい、その通りです。お役に立てて幸いです。

Iniciar sesión para comentar.

Más respuestas (1)

Yoshio
Yoshio el 2 de Jun. de 2019
こちらが参考になるかと思います。
これを踏まえた上で、以下のようなやり方では、いかがでしょうか。
fieldlst = [1号, 2号, 3号.....]
for i = 1:length(fieldlst)
j = find(db.field == fieldlst(i)) % dbでfieldlst(i)に該当する 行を見つける(複数)
for k = 1:length(j)
sample = db(j(k),:) % ここでは該当する一行毎の処理を想定
.....分析処理......
end % of k
end % of i
dbのデータを作っていないので、間違いがあるかも知れません。
次回ご質問際は、簡単に検証できるようなダミーコード(今回ですとdbの生成コード)を入れていただけると助かります。
ご参考まで。
  1 comentario
chihiro kanada
chihiro kanada el 2 de Jun. de 2019
初心者にて、ダミーコードを付けるという考えに至りませんでした^^;
次回以降、気を付けたいと思います。
汎用性の高そうな手法をご教示いただきありがとうございます。
Itakuraさんの案と合わせて使わせていただきますm(__)m

Iniciar sesión para comentar.

Categorías

Más información sobre MATLAB 入門 en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

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

Start Hunting!