|
|
|
For-Schleife + If: Hochzählen und Wert ausgeben |
|
| JimHier |

Forum-Newbie
|
 |
Beiträge: 2
|
 |
|
 |
Anmeldedatum: 25.02.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 25.02.2012, 14:30
Titel: For-Schleife + If: Hochzählen und Wert ausgeben
|
 |
Hi,
ich will, dass Matlab nach Eingabe des Users hochzählt, bis a erreicht ist.
Bislang rechnet Matlab zwar hoch, aber "erkennt" nicht, wann er zu "else" springen muss und mir a = ... ausgeben soll.
Was mache ich falsch?
v = [ 1 2 ];
p = [ 3 6 ];
a = p/v;
l=input('input integer: ')
for l=1:1:a
if l < a
l = l+1
else l=a
disp('value is ')
a
end
end
|
|
|
|
|
|
| DSP |

Forum-Meister
|
 |
Beiträge: 2.117
|
 |
|
 |
Anmeldedatum: 28.02.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2014b
|
 |
|
|
 |
|
Verfasst am: 25.02.2012, 14:56
Titel:
|
 |
Der Vergleich muss mit == festgelegt/abgefragt werden. = ist eine Zuweisung
Bei else braucht es aber ohnehin keine Bedingung, es sei denn man verwendet
if <Bedingung>
...
else if <Bedingung>
...
else
...
|
|
|
|
| Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 26.02.2012, 10:00
Titel:
|
 |
|
auserdem ist zu beachten das ein eingriff auf die zählvariable nur für den einen schritt einfluss hat und dann beim nächsten durchlauf überschrieben wird. nur weil du i=i+1 schreibst wird die schleife nicht schneller duchlaufen werden..
|
|
|
|
| Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 27.02.2012, 00:05
Titel:
|
 |
Hallo DSP,
| Zitat: |
| else if <Bedingung> |
Du meinst wahrscheinlich:
ohne Leerzeichen zwischen else und if.
Gruß, Jan
|
|
|
|
| JimHier |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 2
|
 |
|
 |
Anmeldedatum: 25.02.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 27.02.2012, 09:33
Titel:
|
 |
Vielen Dank für eure Beiträge.
Also die Sache mit l=l+1 ist nicht gut, da durch die for-Schleife bereits gezählt wird (for l=1:1:a). Deswegen habe ich die Zeile l=l+1 gelöscht.
Da die if-Schleife dann nicht mehr gebraucht wird, habe ich das komplett gelöscht.
v = [ 1 2 ];
p = [ 3 6 ];
a = p/v;
l=input('input')
for l = 1:1:a
end
disp('value is ')
a
Nun wird mir l und a ausgegeben. Aber l zählt nicht hoch. Ich will gerne sehen:
User input = 1
l=1
l=2
l=3
a=3
Ist das möglich?
|
|
|
|
| Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 27.02.2012, 10:11
Titel:
|
 |
1. bitte code umgebung verweden.
2. solltest du dir einmal das grundlagen totorial von matlab durchlesen.
da scheinen einige lücken bei dir zu bestehen.
in deiner vorschleife wird momentan nix gemacht. wozu willst du die zähl variable vorher einlesen. das macht keinen sinn. wenn du den startwert ändern willst musst du das anders machen.
|
|
|
|
|
|
|
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 - 2026
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.
|
|