|
|
Vektor in if-Bedingung einbauen |
|
Schmankerl |

Forum-Fortgeschrittener
|
 |
Beiträge: 77
|
 |
|
 |
Anmeldedatum: 05.12.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 14.12.2012, 18:20
Titel: Vektor in if-Bedingung einbauen
|
 |
Hallo miteinander,
ich habe 2 gleich große Vektoren mit den Namen M und T (200 x 1) und eine Matrix A (200 x 2) , also die Matrix mit lediglich einer Spalte mehr.
Nun möchte ich elementweise überprüfen:
Ich möchte quasi das erste Element des Vektors M prüfen, ob es größer als 1 ist, wenn ja, dann möchte ich das erste Element vom Vektor T überscheiben mit 2* "dem entsprechenden Element aus der Matrix an gleicher Position".
Anschließend dann das zweite Element von M prüfen und dann das zweite Element vom Vektor 2 überschreiben...
Da die Vektoren und der Vektor aus der Matrix gleich groß sind, müsste es doch elementweise funktionieren?
Muss ich mit "." arbeiten, also if M .>1 ? Aber das funktioniert auch nicht...
Hat jemandn Tipp?
Danke
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 14.12.2012, 21:42
Titel:
|
 |
|
|
Schmankerl |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 77
|
 |
|
 |
Anmeldedatum: 05.12.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 15.12.2012, 13:05
Titel:
|
 |
Super das hat geklappt! Danke.
Jetzt würde ich nur gerne verstehen was hier passiert?
Wieso reicht es nicht
?
Was macht denn das
?
Ersetzt mir das quasi die "if-Abfrage" ?
Ich kenn das bisher nur, dass man über T(1) , T(2) ... die Elemente des Vektors T abgreifen kann.
Gibt es da irgendwas zum Nachlesen bzw. hat mir jemand noch die Erklärung parat?
Wäre cool zum Verständnis
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 15.12.2012, 13:21
Titel:
|
 |
Hallo,
wählt die Teile von T aus, bei denen das zugehörige M>1 ist.
Such mal in der Hilfe nach "logical indexing".
Grüße,
Harald
|
|
|
Schmankerl |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 77
|
 |
|
 |
Anmeldedatum: 05.12.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 15.12.2012, 13:31
Titel:
|
 |
Alles klar,dann informiere ich mich da mal... nun habe ich das gleiche für weitere Gleichungen gemacht, erhalte aber folgende Fehlermeldung:
Zitat: |
Error using ./
Matrix dimensions must agree.
Error in Test (line 37)
p9(Ma9>1)=A(Ma9>1,1).*(T9./A(Ma9>1,2)).^(cp/R); |
Heißt ja quasi, die Dimensionen der verwendeten Vektoren sind nicht gleich.
Wenn ich aber mit "whos" abfrage erhalte ich:
A 17932x2
L 1111x19
Ma9 17932x1
R 1x1
T 1x1111
T0 1x1
T9 17932x1
Tmax 1x1
X 1111x19
X_filtered 17932x1
Y 1111x19
Y_filtered 17932x1
cp 1x1
k 1x1
p 1x19
p0 1x1
p9 17932x1
pmax 1x1
w9 17932x1
Hier mal der untere Teil meines Codes:
Hmm eigentlich sieht das doch richtig aus?
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 15.12.2012, 13:49
Titel:
|
 |
Hallo,
du musst immer filtern, also auch bei T9.
Für bessere Performance solltest du den Index einmal am Anfang erzeugen und dann verwenden:
Grüße,
Harald
|
|
|
Schmankerl |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 77
|
 |
|
 |
Anmeldedatum: 05.12.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 15.12.2012, 14:10
Titel:
|
 |
Juhu jetzt klappts!
Danke Harald, super Hilfe.
Jetzt arbeite ich mal das Logical Indexing durch...
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|