2017-03-08 4 views

Antwort

1

Nehmen wir an, wir mit einem VektorA von 80 Elementen zu tun hat:

A = 1:80; 
N = numel(A); 
n = 0.1; m = 0.15; 

Wenn wir nur eine bestimmte Anzahl (oder Prozentsatz) von Elementen aus der Anfang und das Ende entfernen möchten, können wir mehrere Ansätze nehmen:

  • eine Teilmenge Indizierung (was Ander vorgeschlagen):

    wobei end das letzte Element in einer bestimmten Dimension eines Arrays bezeichnet.

  • Löschen von Elementen durch [] Zuordnung:

    A1 = A; A1(1:round(n*N)-1) = []; A1(end-round(m*N)+1:end) = []; 
    

In einigen Fällen können Sie Elemente löschen möchten nicht entsprechend ihrer Position in dem Vektor, sondern nach ihrem Wert (oder Perzentil), In diesem Fall würden Sie folgendes tun:

p = prctile(A(:),[n m]*100); % Returns percentiles p of a data set. 
A1 = A(A >= p(1) & A <= p(2)); 
+0

vielen Dank. Das ist sehr hilfreich. – Paris

+0

@Paris Gern geschehen. Sie können jedoch sehen, dass Ihre Frage einige negative Stimmen erhalten hat - dies ist ein Zeichen, dass es verbessert werden sollte. Ich würde vorschlagen, es zu bearbeiten und eine Demonstration dessen hinzuzufügen, was Sie tun möchten, weil meine Antwort auf einem _guess_ basiert, und einfach zufällig hilfreich war ... Werfen Sie einen Blick auf [ask] und [mcve]. –

Verwandte Themen