Using the find() function to find only the first number greater than the given number.

87 次查看(过去 30 天)
'cell' contains numbers
I want to use the find fucntion like this >>> " find(cell>number) " but i want it to only show the first number that is greater then 'number' and not the rest of the cell.

回答(1 个)

the cyclist
the cyclist 2020-5-31
Here is one way:
% The threshold number
number = 2;
% Your cell. (Don't name it "cell", which is a MATLAB keyword.)
C = {[1 2]; [2 3]; [4 5]};
% For each cell, the first number greater than the threshold. If none the cell has an empty array.
N = cellfun(@(x)x(find(x>number,1)),C,'UniformOutput',false)
  3 个评论
Walter Roberson
Walter Roberson 2020-5-31
find(YourArray>number,1)
Note that this will proceed along columns, so for example,
cell = [
0 10
0 0
0 0
5 0]
then find(cell>3,1) would find the 5 rather than the 10
Cameron Tiegs
Cameron Tiegs 2020-5-31
编辑:Cameron Tiegs 2020-5-31
Thanks for the answer. I used your idea and made this, which worked :)
Index = find(C>number,1);

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Matrix Indexing 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by