how to find difference between column elemnts in a matrix ?

16 views (last 30 days)
Let my matrix is
3 2 14 5
7 1 8 9
11 11 12 13
I need to find the substraction between column 1 and 2 and store the result in coulmn 1. similarily for coulmn 3 and 4 and result will be in coulmn 2. i.e the result should be like this
1 9
6 -1
0 -1
kindly, suggest solution. Thank you.

Accepted Answer

Stephen23
Stephen23 on 13 Jun 2017
Edited: Stephen23 on 14 Jun 2017
A general solution (without hard-coded columns):
>> M(:,1:2:end) - M(:,2:2:end)
ans =
1 9
6 -1
0 -1
EDIT: if you have uint8 image data, then convert to double first:
double(M(:,1:2:end)) - double(M(:,2:2:end))
  6 Comments
Walter Roberson
Walter Roberson on 13 Jun 2017
double(M(:,1:2:end)) - double(M(:,2:2:end)) would run less risk of overflowing datatypes
aditya sahu
aditya sahu on 14 Jun 2017
Thank you @walter-roberson and @Stephen Cobeldick ,,i got it...my matrix was actually uint8 and i am expacting negative, sorry for my mistake..but thank you for your suggestion...

Sign in to comment.

More Answers (1)

Walter Roberson
Walter Roberson on 13 Jun 2017
Result = YourMatrix(:,[1 3]) - YourMatrix(:,[2 4])

Community Treasure Hunt

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

Start Hunting!