Typecasting a matrix of 200x8 uint8 to double

15 visualizzazioni (ultimi 30 giorni)
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

Risposte (2)

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

Christopher Wallace
Christopher Wallace il 18 Set 2018
  2 Commenti
Guillaume
Guillaume il 18 Set 2018
Modificato: Guillaume il 18 Set 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 il 18 Set 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.

Accedi per commentare.

Categorie

Scopri di più su Numeric Types in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by