What is the function of find()

3 visualizzazioni (ultimi 30 giorni)
feit feit
feit feit il 1 Dic 2020
Commentato: feit feit il 1 Dic 2020
Can anyone help me understanding the below code?
n_actions = find(reward(cs,:)>0);
Where 'reward' is a matrix. For example,
reward = [1 2 3; 3 4 5; 5 6 7]; cs = 1;
Thank you

Risposta accettata

Ameer Hamza
Ameer Hamza il 1 Dic 2020
Modificato: Ameer Hamza il 1 Dic 2020
reward = [1 2 3; 3 4 5; 5 6 7]; cs = 1;
Check the output of your code one part at a time
>> reward(cs,:)
ans =
1 2 3
The above line output cs=1 row of matrix reward. Next we use compairson operator
>> reward(cs,:)>0
ans =
1×3 logical array
1 1 1
This line find which elements are greater than 0. As you can see, all of them are above zero so we get [1 1 1]. Next
>> find(reward(cs,:)>0)
ans =
1 2 3
The find() function return the index of all elements that are non-zero.
For example,
>> find([1 2 0 1 0])
ans =
1 2 4
It shows that element number 1, 2, and 4 are non-zero.
  3 Commenti
Ameer Hamza
Ameer Hamza il 1 Dic 2020
Thanks Image Analyst :)
feit feit
feit feit il 1 Dic 2020
Many thanks, Hamza!

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Loops and Conditional Statements in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by