How to use Find (or any other function) to create an Array

1 vue (au cours des 30 derniers jours)
Lucinda Nott
Lucinda Nott le 15 Nov 2020
Commenté : Lucinda Nott le 17 Nov 2020
Hi Everyone,
I have an array, S that appears as so:
And I want to Find the last place where a 1 occured. However, I essentially want to find the last place for each column (I am unsure of how to describe this)
I want my find to be as so:
Intervals = [1 1 1 1 1
3 2
4 ]
With using the max function I would like to create the array:
Max = [4 1 1 1 2]
The rows represent days and columns represent the replication - so essential I want to find the last day the replication achieved a 1.
Any help would be greatly appreciated even a push in the right direction :)

Réponse acceptée

Ameer Hamza
Ameer Hamza le 15 Nov 2020
Modifié(e) : Ameer Hamza le 15 Nov 2020
Try this
S = [
1 1 1 1 1
0 0 0 0 1
1 0 0 0 0
1 0 0 0 0
0 0 0 0 0
0 0 0 0 0];
[~, idx] = max(flipud(S));
idx = size(S,1)-idx+1;
Result
>> idx
idx =
4 1 1 1 2

Plus de réponses (1)

Alan Stevens
Alan Stevens le 15 Nov 2020
Here's another possible way
r = repmat((1:9)',1,5); max(r.*S_dash)

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