how to find difference between column elemnts in a matrix ?

21 Ansichten (letzte 30 Tage)
aditya sahu
aditya sahu am 13 Jun. 2017
Bearbeitet: Stephen23 am 14 Jun. 2017
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.

Akzeptierte Antwort

Stephen23
Stephen23 am 13 Jun. 2017
Bearbeitet: Stephen23 am 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 Kommentare
Walter Roberson
Walter Roberson am 13 Jun. 2017
double(M(:,1:2:end)) - double(M(:,2:2:end)) would run less risk of overflowing datatypes
aditya sahu
aditya sahu am 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...

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

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

Kategorien

Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by