2017-02-04 7 views
0

Ich habe eine 35000 * 200 Matrix und möchte den Index des ersten nicht-negativen Elements jeder Spalte in Matlab bestimmen. Speziell am Ausgang möchte ich einen 1 * 200-Vektor, wobei jedes Element der Zeilenindex des ersten nicht-negativen Elements in der entsprechenden Spalte ist.Finden Sie den Index des ersten nicht-negativen Elements in jeder Spalte einer Matrix

Danke. Sajjad

+2

Willkommen bei Stack-Überlauf. Es wird Ihnen helfen, http://stackoverflow.com/help/mcve zu lesen - wir werden Ihnen mit Codeproblemen helfen, aber wir werden es nicht für Sie schreiben. Zeigen Sie den Code, den Sie versucht haben, und alle Fehler, die Sie bekommen, wenn Sie Hilfe benötigen – Mikkel

Antwort

3

Sie können max über logische verwenden. Wenn Sie Ihre Daten in Matrix A, und Sie mögen Ihr Ergebnis in Vektor i:

[M, i] = max(A >= 0, [], 1); % we find the first non-negative value per column. 
i(~M) = 0; % if all values are negative in that column, we output 0 for it. 
+0

Vielen Dank. – Sajjad

Verwandte Themen