Ermitteln von Indizes und Werten von Elementen ungleich null (2024)

Table of Contents
Syntax Beschreibung Beispiele Elemente gleich und ungleich null in einer Matrix Elemente, die eine Bedingung erfüllen Elemente, die gleich bestimmten Werten sind Bestimmte Anzahl letzter Elemente ungleich null Elemente, die mehrere Bedingungen erfüllen Indexzeichen und Werte für Elemente ungleich null Indexzeichen mehrdimensionaler Arrays Eingabeargumente X — Eingabearray Skalar | Vektor | Matrix | mehrdimensionales Array n — Anzahl der zu ermittelnden Elemente ungleich null positiver ganzzahliger Skalar direction — Suchrichtung 'first' (Standardeinstellung) | 'last' Ausgabeargumente k — Indizes der Elemente ungleich null Vektor row — Indexzeichen für Zeilen Vektor col — Indexzeichen für Spalten Vektor v — Elemente ungleich null von X Vektor Mehr über Lineare Indizes Tipps Erweiterte Fähigkeiten Tall ArraysRechnen mit Arrays, die mehr Zeilen haben, als in den Speicher passen. C/C++ CodegenerierungGenerieren Sie C und C++ Code mit MATLAB® Coder™. Thread-Based Environment Führen Sie mithilfe von MATLAB® backgroundPool den Code im Hintergrund aus oder machen Sie den Code mit der Parallel Computing Toolbox™ ThreadPool schneller. GPU-ArraysSchnellere Codeausführung durch Ausführen auf einer Grafikkarte (GPU) mit der Parallel Computing Toolbox™. Verteilte ArraysPartitionieren von großen Arrays über den kombinierten Speicher Ihres Clusters mit Parallel Computing Toolbox™. Versionsverlauf Siehe auch Themen MATLAB-Befehl Americas Europe Asia Pacific FAQs References

Ermitteln von Indizes und Werten von Elementen ungleich null

alle in Seite reduzieren

Syntax

k = find(X)

k = find(X,n)

k = find(X,n,direction)

[row,col] = find(___)

[row,col,v] = find(___)

Beschreibung

Beispiel

k = find(X) gibt einen Vektor zurück, der die linearen Indizes jedes Elements ungleich null im Array X enthält.

  • Wenn X ein Vektor ist, gibt find einen Vektor zurück, der dieselbe Orientierung hat wie X.

  • Wenn X ein mehrdimensionales Array ist, gibt find einen Spaltenvektor der linearen Indizes des Ergebnisses zurück.

Beispiel

k = find(X,n) gibt die ersten n Indizes zurück, die den Elementen ungleich null in X entsprechen.

Beispiel

k = find(X,n,direction), wobei direction hier 'last' (letzte) ist, findet die letzten n Indizes, die Elementen ungleich null in X entsprechen. Der Standardwert für direction ist 'first' (erste). Mit diesem Wert werden die ersten n Indizes gefunden, die Elementen ungleich null entsprechen.

Beispiel

[row,col] = find(___) gibt die Indexzeichen für Zeilen und Spalten jedes Elements ungleich null im Array X an und verwendet dazu beliebige Eingabeargumente in den vorherigen Syntaxen.

Beispiel

[row,col,v] = find(___) gibt auch den Vektor v zurück, der die Elemente ungleich null von X enthält.

Beispiele

alle reduzieren

Elemente gleich und ungleich null in einer Matrix

Live Script öffnen

Ermitteln Sie die Elemente ungleich null in einer 3x3-Matrix.

X = [1 0 2; 0 1 1; 0 0 4]
X = 3×3 1 0 2 0 1 1 0 0 4
k = find(X)
k = 5×1 1 5 7 8 9

Wenden Sie den logischen Operator not auf X an, um die Nullen zu lokalisieren.

k2 = find(~X)
k2 = 4×1 2 3 4 6

Elemente, die eine Bedingung erfüllen

Live Script öffnen

Ermitteln Sie in der 4x4-Matrix eines magischen Quadrats die ersten fünf Elemente, die kleiner als 10 sind.

X = magic(4)
k = find(X<10,5)
k = 5×1 2 3 4 5 7

Betrachten Sie die entsprechenden Elemente von X.

X(k)
ans = 5×1 5 9 4 2 7

Elemente, die gleich bestimmten Werten sind

Live Script öffnen

Um einen bestimmten ganzzahligen Wert zu ermitteln, verwenden Sie den Operator ==. Ermitteln Sie beispielsweise in einem 1x10-Vektor ungerader Ganzzahlen das Element, das gleich 13 ist.

x = 1:2:20
x = 1×10 1 3 5 7 9 11 13 15 17 19
k = find(x==13)
k = 7

Verwenden Sie zum Ermitteln eines nicht ganzzahligen Werts einen Toleranzwert, der auf Ihren Daten basiert. Anderenfalls ist das Ergebnis aufgrund von Gleitkomma-Rundungsfehlern manchmal eine leere Matrix.

y = 0:0.1:1
y = 1×11 0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000 1.0000
k = find(y==0.3)
k = 1x0 empty double row vector
k = find(abs(y-0.3) < 0.001)
k = 4

Bestimmte Anzahl letzter Elemente ungleich null

Live Script öffnen

Erstellen Sie die 6x6-Matrix eines magischen Quadrats, in der alle ungerade indizierten Elemente gleich null sind.

X = magic(6);X(1:2:end) = 0
X = 6×6 0 0 0 0 0 0 3 32 7 21 23 25 0 0 0 0 0 0 8 28 33 17 10 15 0 0 0 0 0 0 4 36 29 13 18 11

Suchen Sie nach den letzten vier Elementen ungleich null.

k = find(X,4,'last')
k = 4×1 30 32 34 36

Elemente, die mehrere Bedingungen erfüllen

Live Script öffnen

Ermitteln Sie die ersten drei Elemente in einer 4x4-Matrix, die größer als 0 und kleiner als 10 sind. Geben Sie zwei Ausgaben an, um die Indexzeichen der Zeilen und Spalten zu den Elementen zurückzugeben.

X = [18 3 1 11; 8 10 11 3; 9 14 6 1; 4 3 15 21]
X = 4×4 18 3 1 11 8 10 11 3 9 14 6 1 4 3 15 21
[row,col] = find(X>0 & X<10,3)
row = 3×1 2 3 4
col = 3×1 1 1 1

Die erste Instanz ist X(2,1), in diesem Fall 8.

Indexzeichen und Werte für Elemente ungleich null

Live Script öffnen

Ermitteln Sie die Elemente ungleich null in einer 3x3-Matrix. Geben Sie drei Ausgaben an, um die Indexzeichen für Zeilen, die Indexzeichen für Spalten und die Elementwerte zurückzugeben.

X = [3 2 0; -5 0 7; 0 0 1]
X = 3×3 3 2 0 -5 0 7 0 0 1
[row,col,v] = find(X)
row = 5×1 1 2 1 2 3
col = 5×1 1 1 2 3 3
v = 5×1 3 -5 2 7 1

Indexzeichen mehrdimensionaler Arrays

Live Script öffnen

Ermitteln Sie die Elemente ungleich null in einem 4x2x3-Array. Geben Sie zwei Ausgaben an, row und col, um die Indexzeichen für Zeilen und Spalten der Elemente ungleich null zurückzugeben. Wenn die Eingabe ein mehrdimensionales Array (N > 2) ist, gibt find col als linearen Index über die N-1 nachgeordneten Dimensionen von X zurück.

X = zeros(4,2,3);X([1 12 19 21]) = 1
X = X(:,:,1) = 1 0 0 0 0 0 0 0X(:,:,2) = 0 0 0 0 0 0 1 0X(:,:,3) = 0 1 0 0 1 0 0 0
[row,col] = find(X)
row = 4×1 1 4 3 1
col = 4×1 1 3 5 6

Eingabeargumente

alle reduzieren

XEingabearray
Skalar | Vektor | Matrix | mehrdimensionales Array

Eingabearray, angegeben als Skalar, Vektor, Matrix oder mehrdimensionales Array.

Datentypen: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char
Unterstützung komplexer Zahlen: Ja

nAnzahl der zu ermittelnden Elemente ungleich null
positiver ganzzahliger Skalar

Anzahl der zu ermittelnden Elemente ungleich null, angegeben als positiver ganzzahliger Skalar. Standardmäßig sucht find(X,n) nach den ersten n Elementen ungleich null in X.

directionSuchrichtung
'first' (Standardeinstellung) | 'last'

Suchrichtung, angegeben als Zeichenfolge 'first' oder 'last'. Suchen Sie mithilfe von find(X,n,'last') nach den letzten n Elementen ungleich null in X.

Ausgabeargumente

alle reduzieren

k — Indizes der Elemente ungleich null
Vektor

Indizes der Elemente ungleich null, zurückgegeben als Vektor.

  • Wenn es sich bei X um einen Zeilenvektor handelt, ist k ebenfalls ein Zeilenvektor. Anderenfalls ist k ein Spaltenvektor.

  • k ist ein leerer Zeilenvektor oder ein leerer Spaltenvektor, wenn X ein leeres Array ist oder keine Elemente ungleich null enthält.

  • find verwendet den Grundsatz, dass k eine leere Matrix [] ist, wenn X eine leere Matrix [] ist.

Sie können die Werte ungleich null in X mithilfe von X(k) zurückgeben.

row — Indexzeichen für Zeilen
Vektor

Indexzeichen für Zeilen, zurückgegeben als Vektor. Zusammen geben row und col die Indexzeichen X(row,col) an, die den Elementen ungleich null in X entsprechen.

col — Indexzeichen für Spalten
Vektor

Indexzeichen für Spalten, zurückgegeben als Vektor. Zusammen geben row und col die Indexzeichen X(row,col) an, die den Elementen ungleich null in X entsprechen.

Wenn X ein mehrdimensionales Array mit N > 2 ist, dann ist col ein linearer Index über die N-1 nachgeordneten Dimensionen von X. Dadurch bleibt die Relation X(row(i),col(i)) == v(i) erhalten.

v — Elemente ungleich null von X
Vektor

Elemente ungleich null von X, zurückgegeben als Vektor.

Mehr über

alle reduzieren

Lineare Indizes

Ein linearer Index lässt die Verwendung eines einzelnen Indexzeichens zur Indizierung in ein Array zu, z. B. A(k). MATLAB® verarbeitet das Array als einzelnen Spaltenvektor, wobei jede Spalte an den unteren Rand der vorherigen Spalte angehängt ist. Daher werden bei der linearen Indizierung die Elemente in den Spalten von oben nach unten und von links nach rechts nummeriert.

Angenommen, es liegt eine 3x3-Matrix vor. Sie können das Element A(2,2) mit A(5) und das Element A(2,3) mit A(8) referenzieren. Der lineare Index ändert sich abhängig von der Größe des Arrays. A(5) gibt für eine 3x3-Matrix ein Element an einer anderen Position zurück als für eine 4x4-Matrix.

Die Funktionen sub2ind und ind2sub sind hilfreich bei der Konvertierung zwischen Indexzeichen und linearen Indizes.

Tipps

  • Zum Ermitteln von Array-Elementen, die eine Bedingung erfüllen, verwenden Sie find in Verbindung mit einem relationalen Ausdruck. Beispielsweise gibt find(X<5) die linearen Indizes zu den Elementen in X zurück, die kleiner als 5 sind.

  • Um die Elemente in X, die die Bedingung X<5 erfüllen, direkt zu ermitteln, verwenden Sie X(X<5). Vermeiden Sie Funktionsaufrufe wie X(find(X<5)), die find unnötigerweise auf eine logische Matrix anwenden.

  • Wenn Sie find mit einer relationalen Operation wie X>1 ausführen, müssen Sie unbedingt beachten, dass das Ergebnis der relationalen Operation eine logische Matrix aus Einsen und Nullen ist. Beispielsweise gibt der Befehl [row,col,v] = find(X>1) einen Spaltenvektor logischer 1-Werte (true) für v zurück.

  • Die Indexzeichen für Zeilen und Spalten, row und col, beziehen sich auf die linearen Indizes in k durch k = sub2ind(size(X),row,col).

Erweiterte Fähigkeiten

Diese Funktion bietet vollständige Unterstützung für Grafikkarten-Arrays. Weitere Informationen finden Sie unter Run MATLAB Functions on a GPU (Parallel Computing Toolbox).

Diese Funktion bietet vollständige Unterstützung für verteilte Arrays. Weitere Informationen finden Sie unter Run MATLAB Functions with Distributed Arrays (Parallel Computing Toolbox).

Versionsverlauf

Eingeführt vor R2006a

Siehe auch

ind2sub | nonzeros | strfind | sub2ind | Short-Circuit AND | Short-Circuit OR | ismember

Themen

  • Find Array Elements That Meet a Condition
  • Array-Indizierung
  • Relationale Operationen
  • Dünn besetzte Matrizen

MATLAB-Befehl

Sie haben auf einen Link geklickt, der diesem MATLAB-Befehl entspricht:

 

Führen Sie den Befehl durch Eingabe in das MATLAB-Befehlsfenster aus. Webbrowser unterstützen keine MATLAB-Befehle.

Ermitteln von Indizes und Werten von Elementen ungleich null (1)

Select a Web Site

Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .

You can also select a web site from the following list:

Americas

  • América Latina (Español)
  • Canada (English)
  • United States (English)

Europe

  • Belgium (English)
  • Denmark (English)
  • Deutschland (Deutsch)
  • España (Español)
  • Finland (English)
  • France (Français)
  • Ireland (English)
  • Italia (Italiano)
  • Luxembourg (English)
  • Netherlands (English)
  • Norway (English)
  • Österreich (Deutsch)
  • Portugal (English)
  • Sweden (English)
  • Switzerland
    • Deutsch
    • English
    • Français
  • United Kingdom (English)

Asia Pacific

  • Australia (English)
  • India (English)
  • New Zealand (English)
  • 中国
  • 日本 (日本語)
  • 한국 (한국어)

Contact your local office

Ermitteln von Indizes und Werten von Elementen ungleich null (2024)

FAQs

How do you find the index of a nonzero element in Matlab? ›

Description. k = find( X ) returns a vector containing the linear indices of each nonzero element in array X . If X is a vector, then find returns a vector with the same orientation as X . If X is a multidimensional array, then find returns a column vector of the linear indices of the result.

How to find the minimum value of an array in Matlab? ›

M = min( A ) returns the minimum elements of an array. If A is a vector, then min(A) returns the minimum of A .

How to find unique values in Matlab? ›

C = unique( A , setOrder ) returns the unique values of A in a specific order. setOrder can be 'sorted' (default) or 'stable' . C = unique( A , occurrence ) specifies which indices to return in case of repeated values. occurrence can be 'first' (default) or 'last' .

How to reshape a matrix in Matlab? ›

B = reshape( A , sz ) reshapes A using the size vector, sz , to define size(B) . For example, reshape(A,[2,3]) reshapes A into a 2-by-3 matrix. sz must contain at least 2 elements, and prod(sz) must be the same as numel(A) . B = reshape( A , sz1,...,szN ) reshapes A into a sz1 -by- ...

Does MATLAB index from 0 or 1? ›

Remember: MATLAB uses 1-based indexing.

When indexing into a matrix, some languages start at zero. Other languages, such as MATLAB, start at 1.

What is an example of a non-zero matrix? ›

In other words, a matrix is considered nonzero if it has at least one entry that is not equal to zero. If all the elements of a matrix are zero, it is called a zero matrix. In this 2×2 2 × 2 matrix, both elements on the main diagonal (2 and 3 ) are nonzero.

How do you find the minimum element in an array? ›

Approach:
  1. Create a min variable and initialize it with arr[0].
  2. Use a for loop and compare it with other elements of the array.
  3. If any element is less than the min value, update min value with element's value.
  4. Print the min variable.

How do you find the minimum value of an array without sorting? ›

Start with a value of smallest which is the largest possible value. Then, loop over every item in the array. If it is smaller than smallest, update smallest accordingly and continue. Once the loop is finished, smallest is equal to the smallest value.

How to find min and max value in MATLAB? ›

Description. [ minA , maxA ] = bounds( A ) returns the minimum value minA and maximum value maxA in an array. minA is equivalent to min(A) and maxA is equivalent to max(A) . [ minA , maxA ] = bounds( A , "all" ) computes the minimum and maximum values over all elements of A .

How to convert table to array in MATLAB? ›

A = table2array( T ) converts the table or timetable, T , to a homogeneous array, A . The variables in T become columns in A . The output A does not include the table properties in T.

How do you generate distinct random numbers in MATLAB? ›

Execute the rng("shuffle") command once in your MATLAB session before calling any of the random number functions. You can execute this command in a MATLAB Command Window, or you can add it to your startup file, which is a special script that MATLAB executes every time you restart. Now, execute a random number command.

How do I get unique values from two arrays? ›

Using for loop
  1. Create an empty array that would store the unique elements from the two arrays.
  2. Iterate over all elements of array1 using a loop.
  3. Set the initial flag value as 0 for each iteration.
  4. In that loop Iterate over all elements of array2 using another loop and check if array1[element] is present in array2.
May 16, 2024

What does squeeze do in MATLAB? ›

B = squeeze( A ) returns an array with the same elements as the input array A , but with dimensions of length 1 removed. For example, if A is a 3-by-1-by-1-by-2 array, then squeeze(A) returns a 3-by-2 matrix.

How to plot a 3D plot in MATLAB? ›

To plot a 3D surface from a data file in MATLAB, you will need to have the data file open in MATLAB. Once you have the data file available, you can use the plot3 command to plot the data. The plot3 command will create a 3D plot of the data. You can also use the surf command to create a 3D surface plot.

How to convert string to matrix in MATLAB? ›

X = str2num( txt ) converts a character array or string scalar to a numeric matrix. The input can include spaces, commas, and semicolons to indicate separate elements. If str2num cannot parse the input as numeric values, then it returns an empty matrix.

How do you find the number of nonzero elements in MATLAB? ›

N = nnz( X ) returns the number of nonzero elements in X . When X is a built-in MATLAB® type, floating-point fi object, or scaled double fi object, N is returned as a double . When X is a fixed-point fi object, N is returned as a uint32 if X has fewer than 232 elements. Otherwise, N is returned as a uint64 .

How do you find the index of elements in MATLAB? ›

To find the index of the element in the array, you can use the find() function. Using the find() function you can find the indices and the element from the array. The find() function returns a vector containing the data.

How do you check an array for non-zero values? ›

If A is a vector, then B = any(A) returns logical 1 ( true ) if any of the elements of A is a nonzero number or is logical 1 , and returns logical 0 ( false ) if all the elements are zero.

How do you find the NaN index of an array in MATLAB? ›

TF = isnan( A ) returns a logical array containing 1 ( true ) where the elements of A are NaN , and 0 ( false ) where they are not. If A contains complex numbers, isnan(A) contains 1 for elements with either real or imaginary part is NaN , and 0 for elements where both real and imaginary parts are not NaN .

References

Top Articles
Latest Posts
Recommended Articles
Article information

Author: Duncan Muller

Last Updated:

Views: 6036

Rating: 4.9 / 5 (79 voted)

Reviews: 94% of readers found this page helpful

Author information

Name: Duncan Muller

Birthday: 1997-01-13

Address: Apt. 505 914 Phillip Crossroad, O'Konborough, NV 62411

Phone: +8555305800947

Job: Construction Agent

Hobby: Shopping, Table tennis, Snowboarding, Rafting, Motor sports, Homebrewing, Taxidermy

Introduction: My name is Duncan Muller, I am a enchanting, good, gentle, modern, tasty, nice, elegant person who loves writing and wants to share my knowledge and understanding with you.