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

2 vues (au cours des 30 derniers jours)
Juan Antonio
Juan Antonio le 5 Mar 2024
Commenté : Dyuman Joshi le 8 Mar 2024
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.

Réponses (1)

Dyuman Joshi
Dyuman Joshi le 5 Mar 2024
Modifié(e) : Dyuman Joshi le 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

Catégories

En savoir plus sur Data Types dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by