Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Bücher:

Chemische Reaktionstechnik mit MATLAB und Simulink

Studierende:
weitere Angebote

Partner:


Vermarktungspartner


Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Ersten und letzten Nonzero Wert aus Vektor lesen

 

Kein Roboter
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 25.01.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.01.2021, 17:37     Titel: Ersten und letzten Nonzero Wert aus Vektor lesen
  Antworten mit Zitat      
Hallo,

ich habe gerade ein kleines Problem und hoffe, ihr könnt mir helfen.
Ich habe einen Vektor mit einer zeile und beliebig vielen aber festen Spalten.
In dem Vektor gibt es ganz viele Nullen und mehrere Werte ungleich null, die aber immer in Gruppen auftreten.

Beispiel:
Code:
V= [ 0 0 0 0 0 1 1 1 1 0 0 0 0]


Ich würde jetzt gerne die erste und die letzte Stelle dieser 1er Gruppe ausfindig machen.

Mit:
Code:

habe ich schonmal alle 1er mit ihrer Stelle gefunden. Aber ich will ja nur den ersten und letzten.

Ist es möglich, dass ich auf den neuen Vektor W dann einfach irgendwie mit MAX und MIN mache? Wobei der Befehl ja wirklich den Wert des Maximums und des Minimus ausgibt.
Oder kann ich das auch irgendwie mit W(:, end) oder sowas machen?

Für jeden Tipp dankbar.
Viele Grüße
Private Nachricht senden Benutzer-Profile anzeigen


andreas.apostolatos
Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 06.05.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.01.2021, 13:26     Titel:
  Antworten mit Zitat      
Hallo,

Die Komponente des Vektors:

Code:


sind die Indizes des Vektors 'V', die nicht gleich Null sind.

Mit den folgenden Befehlen,

Code:
minIndex = min(W);

Code:
maxIndex = max(W);


erhalten Sie den ersten und den letzten Index des Vektors 'V', wo ein Wert ungleich zu Null aufgetretten ist. Ob diese Stellen einer "Gruppe" gehören können Sie einfach durch eine kontinuierliche Sequenz von ganzen Zahlen in 'W' prüfen. Wenn zum Beispiel Vektor 'W' wie folgt aussieht,

Code:
W = [2 3 4 7 8 9 10];


dann können Sie schließen, dass es zwei Gruppen von ungleich zu Null Werten in Vektor 'V' geben, nämlich Gruppe 1:

Code:
V1 = [V(W(1)) V(W(2)) V(W(3))]; % V1 = [2 3 4]


und Gruppe 2:

Code:
V2 = [V(W(4)) V(W(5)) V(W(6)) V(W(7))]; % V1 = [7 8 9 10]



Ich hoffe, dass diese Information Ihnen hilft.

Schöne Grüße,
Andreas
_________________

Dr.-Ing. Andreas Apostolatos
Private Nachricht senden Benutzer-Profile anzeigen
 
Kein Roboter
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 25.01.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.01.2021, 13:34     Titel: Sehr hilfreich
  Antworten mit Zitat      
Hallo Andreas,

das ist tatsächlich sehr hilfreich. Hatte mir jetzt auch Abhilfe hiermit verschafft:
Code:
w=find(V,1, 'first')

oder natürlich mit 'last'.

Das hatte aber noch nicht mein Problem mit der Gruppe behoben, das war sehr nützlich, danke.

Viele Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.


goMatlab ist ein Teil des goForen-Labels
goForen.de goMATLAB.de goLaTeX.de


 Impressum  | Nutzungsbedingungen  | Datenschutz  | Werbung/Mediadaten | Studentenversion | FAQ | goMatlab RSS Button RSS


Copyright © 2007 - 2021 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
Partner: LabVIEWforum.de

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.