Clear Filters
Clear Filters

Pairwise subtraction of rows in the same matrix

7 views (last 30 days)
Hello guys...
Please I have this code
How can I subtract each row from all other rows(R) ... like subtracting R1-R1; R1-R2, R1-R3... R1-Rn+1 AND
then R2-R1, R2-R3.... R2-Rn+1 for all the rows
A1 = [...
0 0 1 1 1
0 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
0 0 1 1 1
1 0 1 0 1
0 0 0 0 1
1 1 1 1 1
1 1 1 1 1
0 1 1 1 1
1 0 1 0 1
0 0 1 0 1
1 1 1 1 1
1 1 1 1 1
1 0 1 1 1
0 0 1 1 1
0 1 1 1 1
1 1 1 1 1];
I need this urgently....
Thanks
  6 Comments
Adedeji
Adedeji on 12 May 2019
It's not a homework but part of an ongoing project of mine
as I explained while replying to David's answer.
I wish to subtract each customers 5 attributes (The Columns) from the other customers'.
The rows are the customers
The columns are their 5 attributes.
Adedeji
Adedeji on 12 May 2019
I have tried Diff()
but it's not giving me a pairwise subtraction across all possible combinations of rows there could be.

Sign in to comment.

Accepted Answer

madhan ravi
madhan ravi on 12 May 2019
Edited: madhan ravi on 12 May 2019
Aa= reshape(a',1,size(a,2),[])- a; % a your matrix , each page of Aa represents each row’s subtraction
A=reshape(permute(Aa,[2,1,3]),size(a,2),[]).'
  7 Comments
madhan ravi
madhan ravi on 12 May 2019
Edited: madhan ravi on 12 May 2019
Wanted = bsxfun(@minus,reshape(D.',1,size(D,2),[]), D) % the reason was your using version prior to 2016b, that's why when you ask a question you should fill up the field "Release" thereby these kinds of misunderstandings can be avoided
Adedeji
Adedeji on 12 May 2019
Exactly!!!!!!
This gives me what I want...
But I also want to sum all the elements for each row and divide it by 5 for all the possible combinations.
So I end up with a 3 by 3 matrix again.
Please how do you advice I do this.

Sign in to comment.

More Answers (0)

Categories

Find more on Startup and Shutdown in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!