Wie man einen Wert in einem Array in Octave findet

In diesem Leitfaden erkläre ich, wie man Daten in einem Array mit Hilfe der find()-Funktion von Octave suchen und finden kann.

find(X,N,D)

Die find()-Funktion hat drei Parameter:

  • X
    Der erste Parameter X ist das Array, in dem gesucht werden soll. Es ist ein erforderlicher Parameter.
  • N
    Das ist die maximale Anzahl an Elementen, die man aus der Suche erhalten möchte. Die Suche stoppt nach N Ergebnissen.
  • D
    Das ist die Suchrichtung. Man kann "first" eingeben, um von dem ersten zum letzten Element zu suchen oder "last", um von dem letzten zum ersten Element des Indexes zu suchen. Standardmäßig ist es "first".

Diese Funktion extrahiert die Indizes der Elemente, die der Suche im Array entsprechen.

Hinweis. Die find()-Funktion gibt die Indizes der Arrays in aufsteigender Reihenfolge zurück. Nicht in der Reihenfolge der Extraktion.

Ich gebe Ihnen ein praktisches Beispiel.

Erstellen Sie ein Array und weisen Sie es der Variablen V zu:

>> V = [ 1 0 2 0 4 0 4 ]
V =
1 0 2 0 4 0 4

Es gibt sieben Elemente im Array.

Vergessen Sie nicht, dass das erste Element eines Arrays in Octave den Index 0 hat.

Index der Elemente des Arrays

Geben Sie find(V) ein, um die von Null verschiedenen Elemente zu finden.

>> find(V)
ans =
1 3 5 7

Die find()-Funktion zeigt die Indexposition der Elemente des Arrays mit von Null verschiedenen Werten an, d.h. V[1], V[3], V[5] und V[7].

das Ergebnis der Suche

Die Ergebnisse sind die Positionen der Elemente im Index des Arrays. Sie sind nicht die Werte der Elemente.

Hinweis. Die find()-Funktion gibt die gleichen Ergebnisse zurück, auch wenn das Array in einer Spalte angeordnet ist.
die Funktion find()

Geben Sie find(V,1) ein, um nur ein Ergebnis aus der Suche zu erhalten.

>> find(V,1)
ans = 1

Die Funktion gibt die Position des ersten von Null verschiedenen Elements im Array zurück, d.h. V[1].

das Ergebnis der Suche

Geben Sie nun find(V,1,"last") ein, um von rechts nach links zu suchen.

>> find(V,1,"last")
ans = 7

Das Ergebnis ist das Element V[7], da es das erste mit dem von Null verschiedenen Wert V[7]=4 von rechts ist.

das Ergebnis der Suche

Wenn Sie Elemente finden möchten, die gleich Null sind, geben Sie eine Negation vor dem Array-Namen ein.

Geben Sie find(~V) ein:

>> find(~V)
ans =
2 4 6

Die Suche extrahiert die Positionen im Index der Elemente mit dem Wert gleich Null.

Die Ergebnisse sind V[2], V[4] und V[6].

das Ergebnis der Suche

Geben Sie find(V>2) ein, um nur Array-Elemente mit Werten größer als zwei zu finden:

>> find(V>2)
ans =
5 7

Die Funktion findet die Elemente V[5] und V[7] des Arrays.

das Ergebnis der Suche

Wenn die Suche keine Ergebnisse liefert, gibt die find()-Funktion eine leere Menge zurück.

Zum Beispiel, wenn Sie find(V>5) eingeben, ist das Ergebnis ein leeres Array.

>> find(V>5)
ans = [ ](1x0)

Geben Sie find(V<=3 & V>=1) ein, um Array-Elemente mit einem Wert zwischen 1 und 3 zu suchen:

>> find(V<=3 & V>=1)
ans =
1 3

Die Suche extrahiert die Elemente V[1] und V[3] des Arrays.

das Ergebnis der Suche

Wie sucht man in einem mehrdimensionalen Array?

Wenn das Array mehrdimensional ist (z.B. Matrix), sucht die find()-Funktion die Daten spaltenweise.

Erstellen Sie zum Beispiel eine Matrix mit drei Zeilen und drei Spalten.

>> M=[1 0 1; 0 1 0; 1 0 1]
M =
1 0 1
0 1 0
1 0 1

Das Array ist ein zweidimensionales Array

$$ \begin{pmatrix} 1 & 0 & 1 \\ 0 & 1 & 0 \\ 1 & 0 & 1 \end{pmatrix} $$

Geben Sie find(M) ein, um nach Elementen mit von Null verschiedenen Werten zu suchen.

>> find(M)
ans =
1
3
5
7
9

Die Funktion gibt die Positionen der Elemente im Index zurück, als ob das Array eindimensional wäre, indem sie die Elemente in Spalten iteriert.

Zum Beispiel sind die Indizes 1 und 3 die ersten beiden von Null verschiedenen Elemente, die in der ersten Spalte gefunden wurden.

die ersten beiden Elemente

Index 5 ist das von Null verschiedene Element in der zweiten Spalte.

Es ist das fünfte Element, das von der Suche analysiert wurde.

das fünfte Element der Serie

Die Indizes 7 und 9 sind die von Null verschiedenen Elemente in der dritten Spalte.

Sie sind das siebte und neunte Element in der Reihenfolge der Elemente, die von der Suche analysiert wurden.

die Elemente in Position 7 und 9

Wenn Sie als Ergebnis die Koordinaten (Zeile; Spalte) der Elemente in der Matrix erhalten möchten, müssen Sie einen anderen Befehl verwenden.

Geben Sie [row, col, v]=find(M) ein:

>> [row,col]=find(M)
row =
1
3
2
1
3

col =
1
1
2
3
3

v =
1
1
1
1
1

In diesem Fall extrahiert die Funktion drei Arrays:

  • das erste Array (row) enthält die Zeilennummern
  • das zweite Array (col) enthält die Spaltennummern
  • das dritte Array (v) enthält die Werte der Elemente

Zum Beispiel, um die Koordinaten des ersten Suchergebnisses anzuzeigen, geben Sie row(1),col(1) ein:

>> row(1),col(1)
ans = 1
ans = 1

Das erste von Null verschiedene Element der Matrix befindet sich bei den Koordinaten (1,1), d.h. in der ersten Zeile und ersten Spalte der Matrix.

das erste Element

Um die Koordinaten des zweiten Ergebnisses anzuzeigen, geben Sie row(2),col(2) ein:

>> row(2),col(2)
ans = 3
ans = 1

Das zweite Element mit einem von Null verschiedenen Wert befindet sich bei den Koordinaten (3,1), d.h. in der dritten Zeile und ersten Spalte der Matrix.

das zweite Element

Auf diese Weise können Sie die genaue Position der Elemente im Array ermitteln.

 
 

Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

FacebookTwitterLinkedinLinkedin

Arrays in Octave

Vektor

Matrix

Struct und Cell-Array