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.

2 views (last 30 days)
A=[23; 34;22;13] output matrixs=[1;-1;-1],[-1,-1],[-1]

Accepted Answer

Guillaume
Guillaume on 2 Oct 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 Comments

Sign in to comment.

More Answers (1)

Atsushi Ueno
Atsushi Ueno on 2 Oct 2016
Edited: Atsushi Ueno on 3 Oct 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

Tags

No tags entered yet.

Products

Community Treasure Hunt

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

Start Hunting!