MATLAB Indexing type dependence (bug?)
显示 更早的评论
Please see this strange example, where the datatype (single vs double) of the starting index affects how many data points are returned:
y = rand(67347456+50,1);
y = single(y);
N = single(50);
size(y(N+1:end))
MATLAB returns: >> 67347454 1 (incorrect, missing 2 elements)
size([N+1:length(y)])
MATLAB returns: >> 1 67347456 (which is correct)
and
size(y(double(N)+1:end))
MATLAB returns >> 67347456 1 (also correct)
Other datatypes like uint32 also work fine.
Please help me understand: If N is only 50, what does it matter to the indexing whether it is a single or a double? Also, aren't these ending index values well within the presicion of single?
采纳的回答
更多回答(1 个)
eps(single(67347456+50))
single precision numbers are 8 apart by the time of 67347456
类别
在 帮助中心 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!