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

Wie kann ich bestimmte Werte mit For-Schleife versetzen?

 

Ruaa
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 11.07.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.07.2018, 14:22     Titel: Wie kann ich bestimmte Werte mit For-Schleife versetzen?
  Antworten mit Zitat      
Hi,

ich bin hier neu und habe eine Aufgabe, die mit Hilfe des MatLabs erstellt werden muss, zu erfüllen. Die ist kompliziert und ich versuche die zu erklären.

- Ich habe n x Pulse(ich nenne die Pulses), die jeweils aus 128 Elemente bestehen.
- Ich muss aus diese Pulse der Druck (D), Widerstand(R) und Fluss(Q) bestimmen.
- Ich muss in dem ERSTEN Puls (P1) eine bestimmte Wert eingeben (zwar R1=1) und daraus einen anderen Wert(Q1) bestimmen.
- Ich muss dann (Q1) in dem ZWEITEN Puls einsetzen um (R2) zu bestimmen. Aus (R2) muss (Q2) bestimmt werden.
-(Q2) muss jetzt in dem DRITTEN Puls eingesetzt werden um (R3) zu bestimmen. Aus (R3) muss (Q3) bestimmt werden.
- und so weiter.....
- In dieser Funktion möchte ich die Verhältnisse von (R1...Rn) and (Q1..Qn) untersuchen bzw. wie sie voneinander abhängig sind.


Ich habe diese Schritte in Matlab manuell geschrieben, natürlich mit viele Schritte. Deshalb möchte ich euch darum bitten mir zu helfen:).

Ich glaube ich muss dieses Problem mit mehreren For-Schleifen lösen, aber wie???




Code:
         function [Q,R] = CalculateRQ( Pulses,Parameter1,Parameter2 )

          D1 = calculateD(Pulses(1,:) ,Parameter1,Parameter2);% Druck-Funktion für 1-Puls
          Q1 = CalcRootFlow(D1,Pulses(1,:),R1);% Flow-Funktion für 1-Fluss
 
          D2= calculateD(Pulses(2,:),Parameter1,Parameter2);% Druck-Funktion für 2-Puls
          Rp2  = mean(D2) / mean(Q1);
          Q2 = CalcRootQ(D2,Pulses(2,:),R2);% Flow-Funktion für 2-Fluss
 
          D3= calculateD(Pulses(3,:),Parameter1,Parameter2);% Druck-Funktion für 3-Puls
          R3  = mean(D3) / mean(Q2);
          Q3 = CalcRootQ(D3,Pulses(3,:),R3);% Flow-Funktion für 3-Fluss
 
          D4= calculateD(Pulses(4,:),Parameter1,Parameter2);% Druck-Funktion für 4-Puls
          R4   = mean(D4) /mean(Q3) ;
          Q4 = CalcRootQ(D4,Pulses(4,:),R4);% Flow-Funktion für 4-Fluss
          .
          .
          .
          .
          .

_________________

Ruaa
Private Nachricht senden Benutzer-Profile anzeigen


ol1v3r
Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 06.07.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.07.2018, 14:28     Titel:
  Antworten mit Zitat      
Überlege dir doch einfach, wie du als Mensch vorgehst und die Zahlen durchvariierst. Dann solltest du evtl. feststellen, wieviele Zählvariablen du wo und wie brauchst.

Hast du schon jemals mit einer for-Schleife oder auch generell Schleife gearbeitet?
_________________

Viele Grüße
Ol1v3r
Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
Ruaa
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 11.07.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.07.2018, 14:44     Titel:
  Antworten mit Zitat      
Hi,

Danke für deine Antwort:).

Ich überlege mir schon seit Sunden wie ich das schaffen kann:(.

Ich bin neu in programmieren und solche komplizierte Problem habe ich noch nicht gehabt:).
_________________

Ruaa
Private Nachricht senden Benutzer-Profile anzeigen
 
ol1v3r
Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 06.07.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.07.2018, 14:54     Titel:
  Antworten mit Zitat      
Ersetze mal die Stellen in deinem Code die sich nach jeder Iteration unterscheiden durch eine Variable und poste dein Ergebnis. Very Happy
_________________

Viele Grüße
Ol1v3r
Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
Ruaa
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 11.07.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.07.2018, 10:45     Titel:
  Antworten mit Zitat      
Meinst du wie folgendes umgeschrieben??
Aber ich einen Problem mit R. Erste Wert muss einen Konstant sein z,B R1= 1.

Ich habe das Code so umgeschrieben:

Code:


          for i = 1 : size(Pulses)
          R1= 1;
          D(i) = calculateD(Pulses(i,:) ,Parameter1,Parameter2);% Druck-Funktion für 1-Puls
          Q(i) = CalcRootFlow(D(i),Pulses(i,:),R1);% Flow-Funktion für 1-Fluss
 
          D(i+1)= calculateD(Pulses(i+1,:),Parameter1,Parameter2);% Druck-Funktion für 2-Puls

          % muss ich hier nicht eine weitere Schleife anfagen um R zu bestimmen und speichern?
          % for j= 1 : n; Aber wie groß soll n sein??

          R(i+1)  = mean(Di+1)) / mean(Q(i));
          Q(i+1) = CalcRootQ(D(i+1),Pulses(i+1,:),R(i+1));% Flow-Funktion für 2-Fluss

           D(i+2)= calculateD(Pulses(i+2,:),Parameter1,Parameter2);% Druck-Funktion für 2-Puls
          R(i+2)  = mean(Di+2)) / mean(Q(i+1));
          Q(i+2) = CalcRootQ(D(i+2),Pulses(i+2,:),R(i+2));% Flow-Funktion für 2-Fluss

          D(i+3)= calculateD(Pulses(i+3,:),Parameter1,Parameter2);% Druck-Funktion für 2-Puls
          R(i+3)  = mean(Di+3)) / mean(Q(i+2));
          Q(i+3) = CalcRootQ(D(i+3),Pulses(i+3,:),R(i+3));% Flow-Funktion für 2-Fluss
         
           .
           .  
           .
           end
 

_________________

Ruaa
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.