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 Ansicht (letzte 30 Tage)
A=[23; 34;22;13] output matrixs=[1;-1;-1],[-1,-1],[-1]

Akzeptierte Antwort

Guillaume
Guillaume am 2 Okt. 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 Kommentare

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Atsushi Ueno
Atsushi Ueno am 2 Okt. 2016
Bearbeitet: Atsushi Ueno am 3 Okt. 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

Kategorien

Mehr zu Resizing and Reshaping Matrices finden Sie in Help Center und File Exchange

Tags

Noch keine Tags eingegeben.

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by