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

Innerhalb Schleife den Laufindex verändern

 

DeusRa
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 50
Anmeldedatum: 02.10.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.07.2009, 16:50     Titel: Innerhalb Schleife den Laufindex verändern
  Antworten mit Zitat      
Hallo,

ich möchte innerhalb einer Schleife den Laufindex verändern, damit die Schleife einfach ein paar Einträge überspringt:

Wie macht man das?
So geht das jedenfalls nicht:
Code:
for i=1:20
disp('Hallo');
i=19; % hier soll die Schleife beim Nächsten Durchlauf auf 19 springen
%Das geht aber leider nicht
% Was muss ich tun?
end


Danke schon mal im Voraus
DeusRa
Private Nachricht senden Benutzer-Profile anzeigen


Dagnabit
Forum-Century

Forum-Century


Beiträge: 244
Anmeldedatum: 23.04.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.07.2009, 17:06     Titel:
  Antworten mit Zitat      
Servus Deusra

Ich weiß zwar nicht nach welcher Vorschrift Du manipilieren willst, aber was leicht möglich ist, ist z.B. nur jedes zweite (oder dritte, vierte,...) i zu verwenden:

Code:

for i=1:2:20
    disp('Hallo');
end


oder

Code:

for i=1:3:21
    disp('Hallo');
end

_________________

lg
Martin
Private Nachricht senden Benutzer-Profile anzeigen
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 20.07.2009, 17:24     Titel:
  Antworten mit Zitat      
Ich mag dieses Programmierkonzept nicht. Vermutlich ist das aber Geschmacksache Wink Ich würde eine zweite Laufvariable hernehmen und diese pro Schleifendurchlauf inkrementieren, bzw. springen lassen.

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 20.07.2009, 17:27     Titel:
  Antworten mit Zitat      
Und wie mein Freund Euler immer sagte: Nutze niemals i oder j als Laufvariablen in MATLAB, Du könntest es bereuen, wenn Du komplex rechnen möchtest.

Andreas

http://de.wikipedia.org/wiki/Leonhard_Euler
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
DeusRa
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 50
Anmeldedatum: 02.10.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.07.2009, 18:22     Titel:
  Antworten mit Zitat      
ja, stimmt, das mit i oder j als Laufvariable in Matlab kann im komplexen unklug sein.

Wie ich aus den Antworten entnehme, ist das in der for-schleife also nicht möglich was ich vor habe.

Das mit 1:2:20 oder 1:3:20 ist mir ja bekannt, das meine ich aber nicht damit.

Aber danke für die Antworten soweit.

Ich werde wohl versuchen, das über eine while-Schleife zu lösen.

Hoffe, dennoch auf Ideen.
Private Nachricht senden Benutzer-Profile anzeigen
 
Andy386
Forum-Guru

Forum-Guru


Beiträge: 485
Anmeldedatum: 24.06.09
Wohnort: ---
Version: 7.1/8
     Beitrag Verfasst am: 20.07.2009, 22:31     Titel:
  Antworten mit Zitat      
mit ner for-schleife kommt man da in keiner mir bekannten Programmiersprache weiter (Pascal, C, Matlab, Java) - das wird vom Compiler aufgedröselt und nie wieder verglichen, im Gegensatz zur while-Schleife.
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 28.07.2009, 10:13     Titel:
  Antworten mit Zitat      
Hallo Andi,
Da hast unrecht, in C oder Java könnte man den Laufindex in FOR-Schleife ohne Probleme manipulieren.
Der FOR-Schleifen-Kopf besteht aus drei Teilen

1) Initialisierung
2) Bedingung
3) Inkrementierung

Code:

#include<stdio.h>
int main()
{
   int i;
   for(i=1;i<=10;i++)
   {
      printf("%d\n",i);
   }
   return 1;  
}
 


Zitat:

Ausgabe:
$ ./zaehl.exe
1
2
3
4
5
6
7
8
9
10



Manipulieren des Laufindexes stellt kein Problem in C
Code:

#include<stdio.h>
int main()
{
   int i;
   for(i=1;i<=10;i++)
   {
      printf("%d\n",i);
      i++;
   }
   return 1;  
}  
}
 



Zitat:

Ausgabe:
$ ./zaehl.exe
1
3
5
7
9
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 - 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.