how to find difference between column elemnts in a matrix ?

21 vues (au cours des 30 derniers jours)
aditya sahu
aditya sahu le 13 Juin 2017
Modifié(e) : Stephen23 le 14 Juin 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.

Réponse acceptée

Stephen23
Stephen23 le 13 Juin 2017
Modifié(e) : Stephen23 le 14 Juin 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 commentaires
Walter Roberson
Walter Roberson le 13 Juin 2017
double(M(:,1:2:end)) - double(M(:,2:2:end)) would run less risk of overflowing datatypes
aditya sahu
aditya sahu le 14 Juin 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...

Connectez-vous pour commenter.

Plus de réponses (1)

Walter Roberson
Walter Roberson le 13 Juin 2017
Result = YourMatrix(:,[1 3]) - YourMatrix(:,[2 4])
  1 commentaire
aditya sahu
aditya sahu le 13 Juin 2017
Thank you, but suppose my matrix is 512*512 size then how to do?

Connectez-vous pour commenter.

Catégories

En savoir plus sur Matrix Indexing dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by