How to call the row number of an element?

32 views (last 30 days)
suppose I find a value after applying some formula and then need to find the row/column in the matrix where the value appears.
How do I do this?

Accepted Answer

Veronica Taurino
Veronica Taurino on 3 Aug 2022
Edited: Veronica Taurino on 3 Aug 2022
%[row,col] = find(__)
For example:
X = [1 0 2; 0 1 1; 0 0 4]
X = 3×3
1 0 2 0 1 1 0 0 4
[row,col] = find(X==4)
row = 3
col = 3

More Answers (1)

Matt J
Matt J on 3 Aug 2022
Edited: Matt J on 3 Aug 2022
With find, but be mindful that direct logical indexing is often faster if you are seeking to modify the matrix. Compare:
%Replace all A(i,j)>=50 with 3
A=randi(100,5e3,5e3);
tic;
I=find(A>=50);
B0=A;
B0(I)=3;
toc
Elapsed time is 0.501259 seconds.
tic;
B=A;
B(A>=50)=3;
toc
Elapsed time is 0.301809 seconds.
isequal(B0,B)
ans = logical
1

Community Treasure Hunt

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

Start Hunting!