如何在长度为N的数组中优雅地确定给定距离M的中心间隔?

时间:2012-10-16 07:45:29

标签: matlab

我有一个数组x=1:N。我希望可视化由x确定的曲线的中心部分,仅说明xx=N/2-M/2:N/2+M/2部分。我知道我可以做到这一点,如果我绕一切(N和M可以是任何东西),但这使得一个简单的索引操作相当冗长和不可读。有更优雅的方式吗?

2 个答案:

答案 0 :(得分:2)

调整你的思维,用'半径'表示间隔的大小(称之为m)而不是'直径'(M),瞧

xx = median(x)-m:median(x)+m

这样更优雅,不是吗!既然你可能想要各地的整数尝试

xx = floor(median(x)-m):ceil(median(x)+m)

答案 1 :(得分:2)

MATLAB在整数类型上隐式完成舍入,因此您只需将MN转换为整数:

N = uint32(N);
M = uint32(M);
xx = N/2-M/2:N/2+M/2;