how to get multiple values of multiple columns from a single column?

5 views (last 30 days)
I have a 100x100 matrix where the first column is time and the remaining 99 are % (from 0 to 100%). I would like to know the time value (column 1) where each column reaches the value 40 (40%).
Thank you very much.

Answers (1)

Dyuman Joshi
Dyuman Joshi on 5 Mar 2024
Edited: Dyuman Joshi on 5 Mar 2024
Use logical indexing - Find Array Elements That Meet a Condition, for columns 2-100
(Assuming the value 40 occurs same number of times in each column)
You can also use min -
%sample data
y = magic(5)
y = 5×5
17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9
%closest value to 16
[v, k] = min(abs(y-16))
v = 1×5
1 2 3 2 0
k = 1×5
1 5 3 2 2
For columns 1:size(y,2) and the corresponding values in k, i.e. row values, are the closest to 16
s = size(y);
y(sub2ind(s, k, 1:s(2)))
ans = 1×5
17 18 13 14 16

Community Treasure Hunt

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

Start Hunting!