标签: matlab
我有一个包含整数和双精度混合的双精度数组。我希望获得整数元素的所有索引。我的方式(见下文)非常难看。
idx_list = []; for idx = 1:numel(A) if isinteger(A(idx)) idx_list = [idx_list idx]; end end
我相信有一种单线/更优雅的方式。
答案 0 :(得分:3)
这样的东西会找到完美的整数 -
idx_list = find( floor(A) == A )
将 floor 更改为 ceil 或 round 或 {{3} 也应该这样做。
floor
ceil
round
如果您想处理浮点精度问题,可以在此处介绍 fix -
fix
idx_list = find(abs(round(A) - A)<eps(round(A)))