how to find index of the point in matrix with condition?

21 views (last 30 days)
Let's say, i have matrix 6-by-1 matrix:
A=[ 1 --->labelling "1"
6 --->labelling "2"
3 --->labelling "3"
5 --->labelling "4"
-3 --->labelling "5"
10 ] --->labelling "6"
and
B=[5]
I want to write the code to compare each value in matrix A with B with condition ( If {A}<B---> I will pick up the index and the value from matrix A to make a new matrix)
Particurly: I have the number 1,3, -3 (in matrix A) is smaller than 5 (in matrix B) so I will have the result after compare condition as follows:
C=[ 1 --->labelling "1"
3 --->labelling "3"
-3 ] --->labelling "5"
and the labelling matrix D will be :
D=[ 1
3
5 ]
How to write a relationship between matrix A,B,C,D ?

Accepted Answer

Benjamin Imbach
Benjamin Imbach on 28 Aug 2017
Edited: Benjamin Imbach on 28 Aug 2017
check out the find function.
A = [1 6 3 5 -3 10]';
B = 5;
D = find(A<B); %(linear index)
C = A(D);
  1 Comment
Jan
Jan on 28 Aug 2017
Edited: Jan on 28 Aug 2017
This is even more efficient with "logical indexing": omit the "find".
C = A(A < B)

Sign in to comment.

More Answers (0)

Categories

Find more on Matrix Indexing in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!