I have the following array named "tNino1_2"
I want to filter the value equal to 1 from columns 20, 21, 22, 23 and 24
The script I'm using is below:
xcol=20:1:24
idx=tNino1_2(tNino1_2(:,xcol)==1,:)
The logical indices in position 1 contain a true value outside of the array bounds.

4 Comments

What do you mean by "filter"? What exactly do you want to do when you find a 1 somewhere in columns 20-24? Replace the 1 with NaN or some other value? Remove the entire row from the matrix? Extract those rows into another variable? Etc.
Actually my goal is to find the values equal to 1 in columns 20 to 24
Do you want to find the position (both row and column values) of elements equal to one between columns 20 to 24?

Sign in to comment.

 Accepted Answer

hello
I assumed you want all the rows where there is at least one 1 in the columns 20 to 24
xcol=20:1:24;
[r,c] = find(tNino1_2(:,xcol)==1);
[ru,ia,ic] = unique(r);
out = tNino1_2(ru,:);

2 Comments

This script is exactly what I wanted, it worked perfectly.
Thank you Mathieu, you are accurate as always.
hello Augusto
as always, my pleasure !

Sign in to comment.

More Answers (1)

Voss
Voss on 9 Feb 2023
Edited: Voss on 9 Feb 2023
load tNino1_2
"find the values equal to 1 in columns 20 to 24"
[r,c] = find(tNino1_2(:,20:24) == 1)
r = 28×1
96 97 98 107 164 174 107 164 174 175
c = 28×1
1 1 1 1 1 1 2 2 2 2
r is rows and c is columns. Of course, c is relative to columns 20-24 only, so c = 1 means column 20 of the original matrix, c = 2 means column 21, etc.
You can add 19 to c to get the locations of the 1s in the original matrix
c = c+19
c = 28×1
20 20 20 20 20 20 21 21 21 21
Confirm that the elements at those locations are all 1s:
temp = tNino1_2(sub2ind(size(tNino1_2),r,c))
temp = 28×1
1 1 1 1 1 1 1 1 1 1
all(temp == 1)
ans = logical
1

1 Comment

thank you, this script is perfect to identify the rows and columns of the condition I entered

Sign in to comment.

Categories

Products

Release

R2021a

Community Treasure Hunt

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

Start Hunting!