Borrar filtros
Borrar filtros

finding index of a function

1 visualización (últimos 30 días)
shobhit mehrotra
shobhit mehrotra el 27 de En. de 2015
Respondida: Thomas Feja el 27 de En. de 2015
Hello, I have the following code, When the cell array is created it contains values of AA when the condition is meet. I want to also create a cell array of the index of AA, AA(n) n = 1:length AA.
AA = [ 1 2 3 5 7 10 9 11 13 14 17 19 17 22 25];
data = mat2cell(AA, 1, diff([0 find(diff(AA) < 0) numel(AA)]))
Thanks!
  1 comentario
shobhit mehrotra
shobhit mehrotra el 27 de En. de 2015
Im trying to create another data cell array with indices that meet the condition. dataind = [(1, 2, 3, 4, 5, 6), (7,8,9, 10, 11, 12), (13,14,15)]

Iniciar sesión para comentar.

Respuesta aceptada

Thomas Feja
Thomas Feja el 27 de En. de 2015
If you want go for a single line solution, this will work:
data = arrayfun(@(x,y)x:y,[1,1+find(diff(AA)<0)],[find(diff(AA)<0),numel(AA)],'UniformOutput',false)
This is compact but hard to read. So you might prefer this solution:
idxNegDiff = [find(diff(AA)<0),numel(AA)];
start = 1;
for idx = 1:length(idxNegDiff)
c{idx} = start:idxNegDiff(idx);
start = idxNegDiff(idx)+1;
end
Either way you can verify the result using:
celldisp(c)

Más respuestas (0)

Categorías

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

Etiquetas

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by