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

n verschachtelte Schleifen erzeugen

 

Kartoffelsalat

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.12.2015, 11:01     Titel: n verschachtelte Schleifen erzeugen
  Antworten mit Zitat      
Hallo!
Am Anfang des Programmes soll eine Zahl n eingegeben werden, die eine n-face Summe (wobei jede Summe von 1 bis zu einer unterschiedlichen oberen Grenze g_i,i = {1,2,...,n} läuft) berechnet. Da das n verschachtelte Schleifen erfordert stehe ich vor dem Problem, wie ich das implementieren soll. Eine andere Idee war die folgende:
Code:

Summe = 0;
for i = 1:n
   for t(i) = 1:g_i
      Berechne neuesSummenglied
      Summe = Summe + neuesSummenglied
   end
end
 


Hat jemand eine elegantere Idee?


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 06.12.2015, 15:55     Titel: Re: n verschachtelte Schleifen erzeugen
  Antworten mit Zitat      
Hallo Kartoffelsalat,

Ich verstehe die Frage noch nicht.

Zitat:
Am Anfang des Programmes soll eine Zahl n eingegeben werden, die eine n-face Summe (wobei jede Summe von 1 bis zu einer unterschiedlichen oberen Grenze g_i,i = {1,2,...,n} läuft) berechnet.

Ist das nicht einfach:
Code:

?

Zitat:
Code:
  for t(i) = 1:g_i

Das ist kein valider Matlab code. Was bedeutet "t(i)" hier?

N-Fach verschachtelte Schleifen lassen sich programmieren. Dazu verwendet man nicht n FOR-Schleifen, sondern eine WHILE-Schleife und einen Vektor statt eines einzelnen Schleifen-Zählers.
Code:
n = 4;
v = zeros(1, n);
vMax = 3;
go = true;
while go
  disp(v);

  go = false;
  for k = 1:n
    v(k) = v(k) + 1;
    if v(k) <= vMax
      go = true;
      break;
    end
    v(k) = 0;
  end
end

Gruß, Jan
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.