我正在尝试删除数组结尾的n%开头和m%,但我不知道该怎么做。你能帮忙吗?
答案 0 :(得分:1)
我们假设我们正在处理80个元素的向量 A
:
A = 1:80;
N = numel(A);
n = 0.1; m = 0.15;
如果我们只想从开头和结尾删除一定数量(或百分比)的元素,我们可以采取几种方法:
为子集编制索引(建议Ander):
A1 = A(round(n*N):end-round(m*N));
其中end
指定数组特定维度中的最后一个元素。
通过分配[]
:
A1 = A; A1(1:round(n*N)-1) = []; A1(end-round(m*N)+1:end) = [];
在某些情况下,您希望删除的元素不是根据它们在向量中的位置,而是根据它们的值(或百分位数),在这种情况下您可以这样做:
p = prctile(A(:),[n m]*100); % Returns percentiles p of a data set.
A1 = A(A >= p(1) & A <= p(2));