how to find difference between column elemnts in a matrix ?

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.

 Respuesta aceptada

Stephen23
Stephen23 el 13 de Jun. de 2017
Editada: Stephen23 el 14 de Jun. de 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 comentarios

fine, but it is giving '0' at those places where it should be in negative.
Stephen23
Stephen23 el 13 de Jun. de 2017
Editada: Stephen23 el 13 de Jun. de 2017
@aditya sahu: Please show two values that you think should give a negative output.
Dear stephen, what i mean to say is, in the above example, 8 minus 9 i.e (3rd and 4th column 2nd values) i need -1 as result but it is giving as 0.
Stephen23
Stephen23 el 13 de Jun. de 2017
Editada: Stephen23 el 13 de Jun. de 2017
@aditya sahu: it is likely that you have an unsigned integer matrix: many images are saved as uint8, and in MATLAB the output of arithmetic using uint8 is also uint8 (for which zero is the lowest value).
If that is the case you could easily convert to signed integer:
int16(M(:,1:2:end)) - int16(M(:,2:2:end))
You should pick an appropriate integer class which can encode all of your data:
double(M(:,1:2:end)) - double(M(:,2:2:end)) would run less risk of overflowing datatypes
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...

Iniciar sesión para comentar.

Más respuestas (1)

Result = YourMatrix(:,[1 3]) - YourMatrix(:,[2 4])

1 comentario

Thank you, but suppose my matrix is 512*512 size then how to do?

Iniciar sesión para comentar.

Categorías

Preguntada:

el 13 de Jun. de 2017

Editada:

el 14 de Jun. de 2017

Community Treasure Hunt

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

Start Hunting!

Translated by