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

2 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

Categories

Find more on Data Types in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!