ラベル付けされたta​bleをカウントする​方法について

こんにちは。
ディープラーニングで学習するためのデータにラベル付けをおこないました。
そこで、各カテゴリごとのラベルの数を数えたいのですが方法が思いつきません。カテゴリは22種類あり、ラベル付けされているものは座標と幅、高さが記入されており、ラベル付けしてないものは空白のままです。tableの列方向のラベルの付いている数を知りたいです。
1万枚以上あるため、手動で数えるのは大変なのでなるべくプログラミングで実行したいです。
アイディア、アドバイス等ありましたら宜しくお願い致します。

댓글 수: 5

源樹 上林
源樹 上林 2020년 12월 21일
データはおおよそこんなイメージですか?
label = {'hoge';'hoge'; '';'hoge'};
zahyo = [ 1,2; 3,4;5,6; 7,8];
width = [ 1; 2; 3; 4];
height = [ 5; 6; 7; 8];
T = table(label, zahyo, width, height);
そして
T.label
のなかで、 '' と一致しない数の合計を数えたい。
という理解で合っていますか?
HY
HY 2020년 12월 23일
コメントありがとうございます。
T=17400×23 table
label1 label2 ....
1.jpg [2 2 22 33] [0]
2.jpg [0] [9 8 30 28]
3.jpg [5 6 90 87] [0]
...
このように1枚の画像に対して複数のラベルがついていて、[x座標 y座標 幅 高さ]が与えられています。 この時、列方向に対して[0]以外のラベルがいくつあるのかを調べたいです。 上の例で言えば、label1は2つラベルがついていて、label2は1つのラベルが付いていることがわかります。labelは22こあり、画像は1万7千枚あります。 何かアドバイス等ありましたら、宜しくお願い致します。
源樹 上林
源樹 上林 2020년 12월 23일
例の提示ありがとうございます。
forで回せば何でも解決でき…1万7千枚はあまり回したくはないですね。遅くなりそうな気がする。
nameImg = { '1.jpg', '2.jpg', '3.jpg' }';
label1 = {[2 2 22 33], [0], [5 6 90 87]}';
label2 = {[0], [9 8 30 28], [0]}';
T = table( label1, label2, 'RowNames', nameImg)
% ゼロ以外のインデックス
i = not( cellfun( @(x) isequal(x,0), T.label1 ) );
% ゼロ以外が取り出せていることを確認
T.label1(i)
% ゼロ以外の数
sum(i)
こういう感じですか?あとはこれを22回繰り返すとか。
ちょっとすっきりしない。
HY
HY 2020년 12월 23일
丁寧にご回答頂き、ありがとうございます。 インデックスでゼロ以外のsumを取る方法を教えていただきありがとうございます。 参考になりました。 今は学習を始めてしまい、確認ができませんが終わり次第、是非やってみたいと思います。 大変ありがとうございました。
HY
HY 2020년 12월 24일
源樹様
すみません。なぜかわかりませんが、ベストアンサーを選べない状態です。
後日確認してみます。よろしくお願いいたします。

댓글을 달려면 로그인하십시오.

 채택된 답변

源樹 上林
源樹 上林 2020년 12월 24일

0 개 추천

 解決されたようで何よりです。
 すみません、まだこの掲示板の使い方になれていないもので。選べないのはおそらく僕の書き込みがコメントだからです。回答の方に再投稿しておきます。
% ゼロ以外のインデックス
i = not( cellfun( @(x) isequal(x,0), T.label1 ) );
% ゼロ以外が取り出せていることを確認
T.label1(i)
% ゼロ以外の合計数
sum(i)
これで、ベストアンサーを選択できる状態になったと思います。よろしくおねがいします。

댓글 수: 1

HY
HY 2020년 12월 24일
ありがとうございました!

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

질문:

HY
2020년 12월 19일

댓글:

HY
2020년 12월 24일

Community Treasure Hunt

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

Start Hunting!