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

spezielle if-Schleife

 

Jerno
Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 19.10.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.11.2009, 13:08     Titel: spezielle if-Schleife
  Antworten mit Zitat      
Also es geht darum, dass ich eine 1x850 matrix durchlaufen will und immer den vorrangegangenen Wert mit dem Folgenden vergleiche und dann mittels if eine Bedingung für die Abweichung setzte. Hier mein Code der eig funktionieren müßte es aber nicht macht.
Als Ergebnis für a setzt er alle 850 werte auf 5.

n=1:850
abstand = (Wert(1,1+n) - Wert(1,n));
if (abstand(1,n)) == 0
a(1,n) = 3;
else
a(1,n) = 5;
end[/code]
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.500
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 04.11.2009, 14:10     Titel:
  Antworten mit Zitat      
Hallo,

in der if-Abfrage ist ein Vektor, das ist problematisch.

Versuchs doch so:

Code:
abstand = [diff(Wert), 0];
a = zeros(size(Wert));
a(abstand == 0) = 3;
a(abstand ~= 0) = 5;


(kann noch schöner geschrieben werden, aber wird dann schwieriger zu lesen)

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Fragewurm
Forum-Century

Forum-Century


Beiträge: 180
Anmeldedatum: 23.09.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.11.2009, 14:13     Titel:
  Antworten mit Zitat      
Hi
Das Problem ist der Vector in der If abfrage.
Wenn du das ganze in eine for-Schleife packst klappen es .
Code:

for n=1:850
abstand = (Wert(1,1+n) - Wert(1,n));
if (abstand(1,n)) == 0
a(1,n) = 3;
else
a(1,n) = 5;
end
end
 


Ausserdem solltest du darauf achten das du keine Dimension verletzt
da du ja 850 +1 Werte einlesen willst und laut deiner Beschreibung hast
du nur 850 Werte hast.

Gruss Fragewurm
Private Nachricht senden Benutzer-Profile anzeigen
 
Jerno
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 19.10.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.11.2009, 14:45     Titel:
  Antworten mit Zitat      
@ Harald:

supergut, es hat geklappt, vielen Dank für die schnelle Hilfe.
Private Nachricht senden Benutzer-Profile anzeigen
 
Jerno
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 19.10.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.11.2009, 14:48     Titel:
  Antworten mit Zitat      
@ Fragewurm:

mit der for Schleife hatte ich es im Vorfeld auch schon probiert das hatte aber nicht hingehauen und auch wenn ich Deinen Vorschlag versuche klappt es nicht, liegt wohl daran dass es Vektoren sind(sagte Harald Smile )
Aber trotzdem Vielen Dank, echt ne gute Sache hier.
Private Nachricht senden Benutzer-Profile anzeigen
 
Fragewurm
Forum-Century

Forum-Century


Beiträge: 180
Anmeldedatum: 23.09.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.11.2009, 15:07     Titel:
  Antworten mit Zitat      
Sorry mein Fehler hab dein Inhalt kopiert.
Du musst einfach
Code:

if abstand == 0
 

schreiben dann müsste es gehen
Gruss Fragewurm
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.