WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

negative Werte einer Matrix ersetzen

 

falko182
Forum-Anfänger

Forum-Anfänger



Beiträge: 16
Anmeldedatum: 03.11.09
Wohnort: ---
Version: R2009b
     Beitrag Verfasst am: 03.11.2009, 15:34     Titel: negative Werte einer Matrix ersetzen
  Antworten mit Zitat      
Hallo zusammen,

ich habe da ein problem, was ich nicht allein lösen kann.

Ich habe ein .mat datei mit Messdaten. Diese Daten sind Vektoren und sollten eigentich nur positive Werte enthalten. Leider hat mir das Prognoseprogramm, mit dem ich die datenreihen erstellt habe, auch ein paar negative Werte ausgegeben, die ich in meiner späteren Arbeit damit nicht gebrauchen kann.

Jetzt meine Frage:

Gibt es eine Möglichkeit, diese Negaiven Werte des Vektors (könnte auch in eine Matrix umgewandelt werden) mit nullen zu ersetzen.

vieen dank schon mal im voraus
_________________

meistens sitzt der Fehler vor dem Computer Smile
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 03.11.2009, 15:43     Titel:
  Antworten mit Zitat      
Hallo,

Wenn der Vektor v heisst:

Code:
v(v<0) = 0;


Stichwort: logical indexing

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
falko182
Themenstarter

Forum-Anfänger

Forum-Anfänger



Beiträge: 16
Anmeldedatum: 03.11.09
Wohnort: ---
Version: R2009b
     Beitrag Verfasst am: 03.11.2009, 15:49     Titel:
  Antworten mit Zitat      
doch so einfach... Confused ...vieleen Dank für die schnelle Antwort Smile
_________________

meistens sitzt der Fehler vor dem Computer Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
Minilee

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.09.2014, 16:52     Titel:
  Antworten mit Zitat      
Eine kurze Frage in diesem Zusammenhang, wie kann ich denn die negativen Werte durch den vorherigen Wert ersetzen?

also:

47
58
73
-1
65
23

Also so dass der -1 durch den 73 ersetzt wird?

Grüße,
Minilee
 
Nras
Forum-Meister

Forum-Meister


Beiträge: 608
Anmeldedatum: 21.02.12
Wohnort: ---
Version: 7.12.0.635 (R2011a)
     Beitrag Verfasst am: 04.09.2014, 08:58     Titel:
  Antworten mit Zitat      
Hallo,

das geht sicherlich noch eleganter, aber das hier sollte funktionieren, solange nicht auch der erste Wert in dem Vektor negativ ist. Falls nie zwei negative Werte hintereinander auftreten können, kannst du dir die Schleife auch sparen:
Code:
v = [47
58
73
-1
-3
65
23];

idx = find(v<0);
while any(idx)
    v(idx) = v(idx-1);
    idx = find(v<0);
end


Viele Grüße,
Nras.
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
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

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.