Problem about proximity in matlab

Hi, all,
I defined an array like S=ones(N,x,'uint32'). And I give values to all of them. However I find out the maximum value is 65535 which is 2^16 not 2^32.
I tried 'uint64' but the limit is still 65535, why is that?
Thanks.

4 Comments

How are you assigning the values?
>> S = ones(1,1,'uint32')
S =
1
>> S(1) = 99999
S =
99999
>> S(1)
ans =
99999
>> class(S)
ans =
uint32
Oh, it is weird here. Let me try again.
Oh, when I use class, it is converted to uint16. I need to figure out why?
However I only define uint32 at the beginning. So what could be a reason for converting to uint16? I am confused.
Calling class() causes no conversion. It must have got converted some other way.

Sign in to comment.

Answers (1)

Image Analyst
Image Analyst on 26 Oct 2012
Somewhere along the way, you must have converted it to uint16, perhaps without realizing that you did so.

4 Comments

C Zeng
C Zeng on 26 Oct 2012
Edited: C Zeng on 26 Oct 2012
I use another value calculate from other function. But I did not convert it, traditionally if I do not convert what is the data type?
Thanks, Walter. I think it somewhere convert to double, however, double is more than uint32, right? Does it matter?
Now, I shut all programs off and restart it, seems that there is no such convert data type problems.

Sign in to comment.

Categories

Asked:

on 26 Oct 2012

Community Treasure Hunt

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

Start Hunting!