i have a column matrix [23; 34;22;13]. i need to create set of column matrixs ,which give 1 and -1 in numbers if the next number is less than and larger than.

1 visualizzazione (ultimi 30 giorni)
A=[23; 34;22;13] output matrixs=[1;-1;-1],[-1,-1],[-1]

Risposta accettata

Guillaume
Guillaume il 2 Ott 2016
One possibility:
A = [23; 34; 22; 13];
out = arrayfun(@(idx) sign(A(idx+1:end) - A(idx)), 1:numel(A)-1, 'UniformOutput', false)
celldisp(out)
  9 Commenti

Accedi per commentare.

Più risposte (1)

Atsushi Ueno
Atsushi Ueno il 2 Ott 2016
Modificato: Atsushi Ueno il 3 Ott 2016
I have modified the last answer after getting your comment.
A = [23; 34; 22; 13];
B = sign(diff(A));
matrixs = {0};
for i = numel(B):-1:1
matrixs = {B(i:end), matrixs{:}};
end

Categorie

Scopri di più su Resizing and Reshaping Matrices in Help Center e File Exchange

Tag

Non è stata ancora inserito alcun tag.

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by