# How can I find an specific value inside an array without using the find function?

8 vues (au cours des 30 derniers jours)
Pipe le 28 Août 2022
Commenté : Walter Roberson le 28 Août 2022
I need to store the index when w>=10 in an array without using the find function. So for example in my code w=10 at t1 8. Is there any way to do that without using the find function?
array=zeros(2,2);
t=0:20;
i=2;
dwdt = @(t,w)(-2.*w+5.05.*w.^0.6);
[t,w] = ode45(dwdt,t,0.5);
%w=10 @ t= 8
index= find(w>=10);%dont use find function
array(i)= index(1);
##### 1 commentaireAfficher -1 commentaires plus anciensMasquer -1 commentaires plus anciens
Walter Roberson le 28 Août 2022
What is the reason to avoid find()? There are ways to get indices in a vectorized way without using find() but they are not especially efficient for large matrices.

Connectez-vous pour commenter.

### Réponse acceptée

Voss le 28 Août 2022
Modifié(e) : Voss le 28 Août 2022
You can use the max function with second output argument, applied to the logical array w>=10, in order to return the first index where w>=10.
array=zeros(2,2);
t=0:20;
i=2;
dwdt = @(t,w)(-2.*w+5.05.*w.^0.6);
[t,w] = ode45(dwdt,t,0.5);
%w=10 @ t= 8
[~,index] = max(w>=10);
disp(index)
8
array(i)= index(1);
##### 0 commentairesAfficher -2 commentaires plus anciensMasquer -2 commentaires plus anciens

Connectez-vous pour commenter.

### Catégories

En savoir plus sur Creating and Concatenating Matrices 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