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 个评论

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.

请先登录,再进行评论。

回答(1 个)

Image Analyst
Image Analyst 2012-10-26

0 个投票

Somewhere along the way, you must have converted it to uint16, perhaps without realizing that you did so.

4 个评论

C Zeng
C Zeng 2012-10-26
编辑:C Zeng 2012-10-26
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.

请先登录,再进行评论。

类别

帮助中心File Exchange 中查找有关 Data Type Conversion 的更多信息

标签

提问:

2012-10-26

Community Treasure Hunt

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

Start Hunting!

Translated by