How to subtracts elements in a list

1 view (last 30 days)
I have list like;
A = [x1,x2,x3,x4];
i want a list which can subtract first element with all other element and so on.\
i need results like [x1-x2,x1-x3,x1-x4,x2-x3,x2-x4,x3-x4]
Any help would be appreciable.
Thanks in advance

Accepted Answer

Star Strider
Star Strider on 28 Jun 2019
Edited: Star Strider on 28 Jun 2019
To get a vector output:
A = randi(9, 1, 4) % Create Vector
Dif = A(:) - A(:)'; % R2016b & Since
Dif = bsxfun(@minus, A(:), A(:)'); % R2016a & Previous
Out = (triu(Dif)+tril(nan(size(Dif))))';
Out = Out(~isnan(Out))'
so for example:
A =
8 9 7 2
Out =
-1 1 6 2 7 5
EDIT — Corrected comments. Code unchanged.
  5 Comments
Rishi Kiran Shankar
Rishi Kiran Shankar on 3 Jul 2019
Hi Star Strider. Thanks a lot!

Sign in to comment.

More Answers (1)

Matt J
Matt J on 28 Jun 2019
A(:)-A(:).'

Community Treasure Hunt

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

Start Hunting!