Azzera filtri
Azzera filtri

Correct use of uint32

4 visualizzazioni (ultimi 30 giorni)
John
John il 31 Ago 2011
When I do the line
k = idx1* uint32(30e6) + idx2* uint32(0) + idx3* uint32(30e6);
I get an error "Integers can only be combined with integers of the same class, or scalar doubles." However, when I do:
idx1* uint32(30e6);
or
idx1* uint32(30e6) + idx2* uint32(0);
it works. Where am I going wrong? idx is a vector produced by:
idx1 = ( a < b )
where a and b are vectors.
  1 Commento
Oleg Komarov
Oleg Komarov il 31 Ago 2011
I get the error anytime I use idx1*uint32(30e6);
From the code you gave us it should issue the error anytime. Provide more code to understand what's going on.

Accedi per commentare.

Risposta accettata

Friedrich
Friedrich il 31 Ago 2011
Hi,
idx1 is a logical vector. So the error can be raised with:
logical(1)*uint32(2)
To get it working, cast idx1 to uint32:
uint32(logical(1))*uint32(2)
ans =
2
So in your case:
k = uint32(idx1)* uint32(30e6) + uint32(idx2)* uint32(0) + uint32(idx3)* uint32(30e6);

Più risposte (0)

Categorie

Scopri di più su Data Type Identification in Help Center e File Exchange

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by