Correct use of uint32
4 ビュー (過去 30 日間)
古いコメントを表示
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 件のコメント
Oleg Komarov
2011 年 8 月 31 日
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.
採用された回答
Friedrich
2011 年 8 月 31 日
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 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Data Type Identification についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!