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 comentarios

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
C Zeng
C Zeng el 26 de Oct. de 2012
Oh, it is weird here. Let me try again.
C Zeng
C Zeng el 26 de Oct. de 2012
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.
Image Analyst
Image Analyst el 27 de Oct. de 2012
Calling class() causes no conversion. It must have got converted some other way.

Iniciar sesión para comentar.

Respuestas (1)

Image Analyst
Image Analyst el 26 de Oct. de 2012

0 votos

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

4 comentarios

C Zeng
C Zeng el 26 de Oct. de 2012
Editada: C Zeng el 26 de Oct. de 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?
Walter Roberson
Walter Roberson el 26 de Oct. de 2012
double
C Zeng
C Zeng el 26 de Oct. de 2012
Thanks, Walter. I think it somewhere convert to double, however, double is more than uint32, right? Does it matter?
C Zeng
C Zeng el 26 de Oct. de 2012
Now, I shut all programs off and restart it, seems that there is no such convert data type problems.

Iniciar sesión para comentar.

Categorías

Más información sobre Data Type Conversion en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 26 de Oct. de 2012

Community Treasure Hunt

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

Start Hunting!

Translated by