Typecasting a matrix of 200x8 uint8 to double

16 visualizaciones (últimos 30 días)
vishwajit jadhav
vishwajit jadhav el 18 de Sept. de 2018
Comentada: Christopher Wallace el 18 de Sept. de 2018
I am typecasting data from uint8 to double so I am using typecast function. I have matrix of 200x8 uint8 which want to convert it into double. So if I use a for loop like below.
if true
convert_double = [];
a = [200x8];
for i =1:200
convert_double = [convert_double; typecast(uint8(a(i,:)), 'double')];
end
end
But I want to remove this for loop so that in one instance itself I will get 200x1 double data

Respuestas (2)

Guillaume
Guillaume el 18 de Sept. de 2018
Transpose your a before reshaping into a vector:
convert_double = typecast(reshape(uint8(a'), 1, []), 'double')

Christopher Wallace
Christopher Wallace el 18 de Sept. de 2018
  2 comentarios
Guillaume
Guillaume el 18 de Sept. de 2018
Editada: Guillaume el 18 de Sept. de 2018
There is a big difference between plain conversion with double and casting with typecast. Compare
a = uint8([154, 8, 27, 158, 94, 41, 240, 63])
double(a)
typecast(a, 'double')
Christopher Wallace
Christopher Wallace el 18 de Sept. de 2018
Absolutely, depends on what the author wants to do with the data. After seeing your answer I see what the "200x1 double data" portion was aiming at.

Iniciar sesión para comentar.

Categorías

Más información sobre Numeric Types en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by