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

2 visualizaciones (últimos 30 días)
Lucinda Nott
Lucinda Nott el 15 de Nov. de 2020
Comentada: Lucinda Nott el 17 de Nov. de 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 :)

Respuesta aceptada

Ameer Hamza
Ameer Hamza el 15 de Nov. de 2020
Editada: Ameer Hamza el 15 de Nov. de 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

Más respuestas (1)

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

Categorías

Más información sobre Creating and Concatenating Matrices en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by