Correct use of uint32
4 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
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
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.
Risposta accettata
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);
0 Commenti
Più risposte (0)
Vedere anche
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!