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

2 Ansichten (letzte 30 Tage)
Lucinda Nott
Lucinda Nott am 15 Nov. 2020
Kommentiert: Lucinda Nott am 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 :)

Akzeptierte Antwort

Ameer Hamza
Ameer Hamza am 15 Nov. 2020
Bearbeitet: Ameer Hamza am 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

Weitere Antworten (1)

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

Kategorien

Mehr zu Creating and Concatenating Matrices finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by