Checking if an array element is larger than the following elements

2 visualizaciones (últimos 30 días)
So if I have a large array of form A=[1,5,6,4,12...], is there a consistent way of checking if some element A(n), let's say A(3), is larger than the following ones? So in this case, I would like to find out that A(3)>A(4). Also, then I would like to change those elements in a way that any element A(n) is always equal or larger than any of the elements before it. So again, in this case I would like to change my array A from [1,5,6,4,12...] -> [1,4,4,4,12...] or [1, NaN, NaN,4,12,...].
Thank you.
  3 comentarios
Valtteri Tikkanen
Valtteri Tikkanen el 11 de Mayo de 2017
Editada: Valtteri Tikkanen el 11 de Mayo de 2017
I have tried this:
A=[1,5,6,4,12,14,13];
for i=2:7
if gt(A(i-1),A(i))
A(i-1)=A(i)
end
end
Which produces A=[1,5,4,4,12,13,13]. The problem is that I do not know how reach elements further away, so for example A(2) is not corrected.
Stephen23
Stephen23 el 11 de Mayo de 2017
Editada: Stephen23 el 11 de Mayo de 2017
Try this:
A = [1,5,6,4,12];
for k = numel(A)-1:-1:1
A(k) = min(A(k:k+1));
end

Iniciar sesión para comentar.

Respuesta aceptada

Jan
Jan el 11 de Mayo de 2017
Editada: Jan el 11 de Mayo de 2017
This is not hard. Please feel encouraged to try it by your onw.
A = [1,5,6,4,12];
X = A(length(A));
for k = length(A)-1:-1:1
if A(k) > X
A(k) = X; % Or: NaN
else
X = A(k);
end
end

Más respuestas (0)

Categorías

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

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by