Heim > häufiges Problem > Hauptteil

Der Array-Index muss eine positive Ganzzahl oder ein logischer Wert sein

(*-*)浩
Freigeben: 2019-12-11 09:46:36
Original
78221 Leute haben es durchsucht

Der Array-Index muss eine positive Ganzzahl oder ein logischer Wert sein

Wenn MATLAB ein Array indiziert, tritt dieser Fehler auf, wenn ein Indexwert verwendet wird, der keine positive Ganzzahl oder kein logischer Wert ist.

Im Folgenden finden Sie einige Vorschläge zur Ursache dieses Fehlers:                                                                                                                                                                                                            ) Überprüfen Sie noch einmal, ob der Indexwert eine positive ganze Zahl ist. Der Index in MATLAB darf nicht 0 sein und beginnt im Allgemeinen bei 1. 2) Wenn Sie einen logischen Variablenindex verwenden, stellen Sie bitte sicher, dass der Index-Array-Typ eine logische Variable und kein doppeltes Array aus 1 und 0 ist. Sie können das Doppelarray auch vor der Indizierung in ein logisches Array konvertieren.

Zum Beispiel:

A = [1 2 3 4; 5 6 7 8];
ind_double = [0 1 0 1; 0 1 0 1];
ind_logical = logical(ind_double);
A(ind_logical)
Nach dem Login kopieren

Für Indexarrays können Sie den Datentyp über die Whos-Funktion überprüfen, zum Beispiel:

whos ind_double
whos ind_logical
Nach dem Login kopieren
3) Wenn Sie verwenden Gleitkomma-Arithmetik, um bei der Berechnung indizierter Arrays die Array-Werte möglicherweise keine ganzzahlige Genauigkeit zu haben. Wenn Sie wissen, dass der Indexwert sehr nahe an einer Ganzzahl liegt, können Sie die Rundungsfunktion verwenden, zum Beispiel:

A = [1 2 3 4; 5 6 7 8];
ind_float = 2.00001;
ind_int = round(ind_float);
A(ind_float)
Nach dem Login kopieren

4) Wenn eine Variable mit demselben Namen wie eine integrierte MATLAB-Funktion definiert wird, Die Funktion wird überschrieben, was zu demselben Fehler führt (die Parameter und der Array-Index der aufrufenden Funktion verwenden dieselben Klammern), zum Beispiel:

max = rand(5);  
A = rand(5);  
max(A)
Nach dem Login kopieren

Zu diesem Zeitpunkt müssen Sie einen anderen Variablennamen zuweisen und löschen Sie den widersprüchlichen Variablennamen:

B = max;  
clear max max(A)
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonDer Array-Index muss eine positive Ganzzahl oder ein logischer Wert sein. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage