MATLAB Answers

0

Typecasting a matrix of 200x8 uint8 to double

Asked by vishwajit jadhav on 18 Sep 2018
Latest activity Commented on by Christopher Wallace on 18 Sep 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

  0 Comments

Sign in to comment.

2 Answers

Answer by Guillaume
on 18 Sep 2018

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

  0 Comments

Sign in to comment.


Answer by Christopher Wallace on 18 Sep 2018

double(a);

  2 Comments

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')
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.

Sign in to comment.