Difference between columns, fixed the first column, in a matrix

6 views (last 30 days)
Hi, I have a 3D-matrix and I want to calculate differences between columns, fixed the first column, and the value be positive or zero, i.e., for each 3D dimension calculate: max ( column(i)-column(1), 0 ). For example:
Thank you in advance!

Accepted Answer

Adam
Adam on 3 Nov 2017
Edited: Adam on 3 Nov 2017
res = max( 0, A(:,2:end,:) - A(:,1,:) );
Note: This syntax only works from R2016b. For older syntax see Andrei Bobrov's answer

More Answers (1)

Andrei Bobrov
Andrei Bobrov on 3 Nov 2017
Edited: Andrei Bobrov on 3 Nov 2017
B = bsxfun(@minus,A(:,2:end,:),A(:,1,:));
B(B<0) = 0;

Community Treasure Hunt

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

Start Hunting!