Array divided by 255 gives me 0
10 次查看(过去 30 天)
显示 更早的评论
I have an matrix that looks like this (but bigger)
[30 29 31;
29 30 30;
30 31 30]
now when I divide it by 255, it gives me this:
[0 0 0;
0 0 0;
0 0 0]
As far as I know I never changed anything with digits, does anyone have an idea what's going on?
Kind regards
edit: the matrix contains doubles
0 个评论
回答(2 个)
Joep
2015-4-7
编辑:Joep
2015-4-7
This is because you matrix was written in uint8. You should first convert it to double.
double([30 29 31; 29 30 30; 30 31 30])
It's not clear why it is in uint8 maybe you load some image or create uint8 matrix.
PS: uint8 means you got a 8 bit number so 2^8=256 which will give 0->255. If you need some help I can help you also in dutch.
2 个评论
James Tursa
2015-4-7
Most likely you thought you had converted it to double, but hadn't. Then you restarted MATLAB and wiped out the evidence.
Ilham Hardy
2015-4-7
testmat = [30 29 31; 29 30 30; 30 31 30] ;
testmat =
30 29 31
29 30 30
30 31 30
>> testmatdev = testmat./255
testmatdev =
0.1176 0.1137 0.1216
0.1137 0.1176 0.1176
0.1176 0.1216 0.1176
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!