Index eines Wertes in einem Array in Matlab finden

Ammar Ali 29 November 2021
Index eines Wertes in einem Array in Matlab finden

In diesem Tutorial wird erläutert, wie man den Index eines Werts in einem Array mit der Funktion find() in MATLAB findet.

Ermitteln des Index eines Wertes in einem Array mit der Funktion find() in MATLAB

In einem Array werden Elemente auf bestimmten Indizes beginnend mit 1 usw. platziert. Um den Index eines Wertes in einem gegebenen Array zu finden, können wir die Funktion find() verwenden. Die Funktion find() wird verwendet, um Indizes und Werte von Elementen in einem Array oder einer Matrix zu finden. Um Indizes von Elementen zu finden, müssen wir eine Bedingung innerhalb der Funktion find() definieren. Wenn wir beispielsweise den Index eines einzelnen Elements finden möchten, können wir den Gleichheitsoperator innerhalb der Funktion find() verwenden. Wenn das gleiche Element an verschiedenen Indizes vorhanden ist, gibt die Funktion find() alle Indizes zurück, in denen das Element vorhanden ist. Wir können alle Arten von bedingten Anweisungen innerhalb dieser Funktion verwenden. Angenommen, wir möchten Indizes aller Elemente finden, die größer als eine bestimmte Zahl sind. In diesem Fall können wir den Größer-als-Operator verwenden, der die Indizes aller Elemente zurückgibt, die größer als diese bestimmte Zahl sind. Lassen Sie uns zum Beispiel den Index eines einzelnen Elements finden, das in einem bestimmten Array vorhanden ist. Siehe den Code unten.

mat = [2 3 1 2];
indices = find(mat==2)

Ausgabe:

indices =

     1     4

Die Variablenindizes enthalten in der obigen Ausgabe zwei Werte, was bedeutet, dass das Element an Index 1 und 4 innerhalb des Arrays oder Vektors vorhanden ist. Betrachten wir nun, wir wollen die Indizes von Elementen finden, die größer als 1 sind. Wir müssen die Bedingung in der Funktion find() ändern. Anstelle des Gleichheitsoperators verwenden wir den Größer-als-Operator. Siehe den Code unten.

mat = [2 3 1 2];
indices = find(mat>1)

Ausgabe:

indices =

     1     2     4

In der obigen Ausgabe enthalten die Variablenindizes drei Werte, und wie Sie sehen, sind drei Elemente innerhalb des angegebenen Arrays oder Vektors größer als eins. Wenn wir eine Matrix haben und die Position eines Elements innerhalb des Vektors finden möchten, können wir die Funktion find() verwenden. Wir wissen, dass das Element innerhalb einer Matrix in einer bestimmten Zeile und Spalte platziert wird, und um diese bestimmte Zeile und Spalte zu finden, können wir die Funktion find() verwenden. Wenn das Element an mehreren Positionen vorhanden ist, gibt die Funktion find() mehrere Werte für Zeile und Spalte zurück. Siehe den Code unten.

mat = [2 3 ; 2 1]
[row, col] = find(mat==2)

Ausgabe:

mat =

     2     3
     2     1


row =

     1
     2


col =

     1
     1

In der obigen Ausgabe hat die Matrix zwei Zeilen und zwei Spalten, der erste Wert des Zeilen- und Spaltenvektors ist die erste Position des Elements, die 1. Zeile und 1. Spalte ist, und der zweite Wert der Zeile und Spalte ist der zweite Position des Elements, die 2. Zeile und 1. Spalte ist. Wenn Sie die Indizes von Element 2 in der gegebenen Matrix finden möchten, gibt die Funktion find() 1 und 2 zurück, da die Werte bei der Matrix spaltenweise platziert werden. Das bedeutet, dass der Wert 2 an Index 1 und 2 und Wert 3 an Index 3 und Wert 1 an Index 4 liegt. Wenn Sie also anstelle von zwei Ausgabevariablen nur eine Variable übergeben, wird die Funktion find() zurückgegeben die Indizes spaltenweise. Lassen Sie uns zum Beispiel die Indizes des Elements suchen und sie durch einen anderen Wert ersetzen. Siehe den Code unten.

mat = [2 3 ; 2 1]
indices = find(mat==2)
mat(indices) = 5

Ausgabe:

mat =

     2     3
     2     1


indices =

     1
     2


mat =

     5     3
     5     1

Im obigen Code finden wir zuerst die Indizes von Element zwei und ersetzen dann den Wert mithilfe der Indizes durch 5, und wie Sie sehen, wurden die Matrixwerte geändert. Wenn Sie die Funktion find() aus irgendeinem Grund nicht verwenden möchten, können Sie Ihre Funktion jederzeit mit einer for-Schleife und einer if-Anweisung erstellen. Sie müssen alle Elemente des Arrays oder der Matrix durchlaufen, und mit der if-Anweisung können Sie überprüfen, ob der aktuelle Wert Ihrem gewünschten Wert entspricht oder nicht. Wenn es mit Ihrem gewünschten Wert übereinstimmt, können Sie seinen Index speichern und fortfahren, bis Sie alle im Array vorhandenen Elemente überprüft haben. Verwenden wir zum Beispiel eine for-Schleife und eine if-Anweisung, um die Indizes eines Vektors oder Arrays zu finden. Siehe den Code unten.

mat = [2 3 2 1]
indices = [];
for i=1:length(mat)
    if(mat(i) == 2)
        indices = [indices i];
    end
end
indices

Ausgabe:

mat =

     2     3     2     1


indices =

     1     3

Im obigen Code haben wir die Variablenindizes mit einem leeren Vektor initialisiert. Wenn der Wert zwei mit einem beliebigen Element innerhalb des Arrays übereinstimmt, speichern wir diesen Index in der Variablen indices.

Autor: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

Verwandter Artikel - MATLAB Array