フィルターのクリア

how to use find to cell cell indexing

1 回表示 (過去 30 日間)
RuiQi
RuiQi 2016 年 12 月 10 日
編集済み: RuiQi 2016 年 12 月 10 日
why does this not work ?
find(grnd_truth_cell{:,1} == 6)
I want to find all of grnd_truth_cell whose 1st column at every row == 6 but matlab tell me Error using == Too many input arguments.
  2 件のコメント
Image Analyst
Image Analyst 2016 年 12 月 10 日
If you just type this on the command line
grnd_truth_cell{:,1}
what does it report to the command window? Show us.
RuiQi
RuiQi 2016 年 12 月 10 日
These are the last few numbers. It goes from 0 to 7480
ans =
7480
ans =
7480
ans =
7480
ans =
7480

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

採用された回答

dpb
dpb 2016 年 12 月 10 日
Because as your command line shows,
grnd_truth_cell{:,1}
is a comma-separated list. Enclose it in the [] to make an array that find can operate over--
find([grnd_truth_cell{:,1}]==6)
  1 件のコメント
RuiQi
RuiQi 2016 年 12 月 10 日
編集済み: RuiQi 2016 年 12 月 10 日
thank you and imageanalyst, i learnt how to handle 'comma-separated lists' today using []

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

その他の回答 (1 件)

Image Analyst
Image Analyst 2016 年 12 月 10 日
編集済み: Image Analyst 2016 年 12 月 10 日
Maybe you can assign it to a column vector first
col1 = grnd_truth_cell{:,1};
whos col1
rowsThatEqual6 = find(col1 == 6); % Braces.
How does that work? Maybe you need to use cell2mat():
col1 = cell2mat(grnd_truth_cell(:, 1)); % Parentheses
If that doesn't work, attach grnd_truth_cell in a .mat file so I can try some things.
save('grnd_truth_cell.mat', 'grnd_truth_cell');
And please read the FAQ on cell arrays: http://matlab.wikia.com/wiki/FAQ#What_is_a_cell_array.3F

カテゴリ

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

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by