|
|
Welche Schleife benötige ich? |
|
tompson |
Forum-Newbie
|
|
Beiträge: 6
|
|
|
|
Anmeldedatum: 12.12.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.12.2013, 18:31
Titel: Welche Schleife benötige ich?
|
|
Hallo Leute,
mal vorne weg ich beschäftige mich erst seit kurzem mit Matlab, von daher hab ich auch den ein oder anderen syntax Fehler...aber das ist erstmal egal
Ich bin gerade verwirrt.
Mein Problem:
Ich möchte die Matrix B
Die Werte der Matrix B sollten wie folgt berechnet werden.:
Der einfachheitshalber mal so erklärt
B = 0 wenn (A(:) - 2)*5>=0
B = 5 wenn (A(:) - 2)*5<=100
ansonsten B =(A(:) - 2)*5 wenn 0<(A(:) - 2)*5<100...
Das hier if falsch ist ist mir inzwischen schon klar, aber meine tests mit for und while hatten auch das selbe ergebnis und zwar, das praktisch nur if (I(:) - k2)*k1<=0 ;
B =(A(:) - 2)*5 gerechnet wird :(
Mein Fehler liegt doch sicherlich darin das ich wohl nur den ersten wert abfrage und dann meine letzte "bedingung" eintrifft und die komplett auf die ganze matrix angewandt wird?!
|
|
|
|
|
Seban |
Forum-Meister
|
|
Beiträge: 600
|
|
|
|
Anmeldedatum: 18.01.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ab R2014b
|
|
|
|
|
|
Verfasst am: 14.12.2013, 19:34
Titel:
|
|
Hallo tompson,
Möchtest du alle Elemente von A prüfen und davon abhängig B erstellen? Sind A und B demnach gleich groß?
Hab gerade kein Matlab zur Verfügung, hoffe es ist kein Fehler drin:
Suchst du so was?
Grüße
_________________
Richtig fragen
Debugging
|
|
|
tompson |
Themenstarter
Forum-Newbie
|
|
Beiträge: 6
|
|
|
|
Anmeldedatum: 12.12.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 15.12.2013, 11:09
Titel:
|
|
Danke dir, das fett gedruckte waren "deine" Fehler, welche dir Matlab vermutlich eh sofort ausgespcukt hätte ;-)
Dieser Code ist nur ein Beispiel da hier schneller klar wird auf was ich hinaus will.
Weitere Frage:
Mein Fehler bestand darin das ich die for-Schleife nicht zählen lassen konnte...
Wie man hier sieht wurde es mit ii gemacht... hat das ne tiefere Bedeutung? funktioniert doch auch mit i, wieso dann ii?
B ist bei mir nun ein Vektor welchen ich dann "reshapen" muss.
Kann ich die rechenoperation auch so durchführen das ich reshape weglassen kann und sich dabei der Code nicht nur verkürzt sondern sogar noch schneller wird?
lg
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 15.12.2013, 11:20
Titel:
|
|
Hallo,
ii statt i wird verwendet um Verwechslungen mit der imaginären Einheit i zu vermeiden.
Die Aufgabenstellung kann deutlich eleganter mit logischer Indizierung gelöst werden. Prinzipiell kann das dann so aussehen:
Grüße,
Harald
|
|
|
|
|
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 - 2024
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.
|
|