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

Werte einer For-Schleife in Array eintragen lassen

 

steffens87
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 29.11.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.11.2010, 17:42     Titel: Werte einer For-Schleife in Array eintragen lassen
  Antworten mit Zitat      
Hallo allerseits, hab ein kleines Problem in Matlab, da ich noch neu bin...

Und zwar möcht ich gern aus folgender for Schleife, die ich später kurz noch erläuter (greift auf was zurück, was evtl. nich sooo geläufig ist...) alle Werte spalten bzw. zeilenweise (transponieren kann ich Cool ) in einer schönen Matrix stehen haben.

Grundprinzip: ich geb vers. Werte für Variablen vor, Matlab schaut in nen anderes Programm und sucht sich die Werte (hier Temperaturen für nen Gasgemisch) raus...

Und genau diese Temperatur_orig'se (ganz unten) möchte ich anschließend in einem Vektor/Matrix stehen haben, da, wenn ichs so mach, wie es dasteht logischerweise immer nur den letzten "berechneten" Wert von Temperatur_orig habe...

Hoffe ich habe rübergebracht, was ich will... Wenn nicht fragt lieber nochmal nach Wink

Wär super, wenn jemand weiter weiß!

Gruß Steffen

Code:
   %**********************************************************************
    % Refprop
    %**********************************************************************

           % **************************************************************
           % Laden der gewünschten Substanzen
           % Quelle: Fluidprop Beispieldateien
           % **************************************************************

n=input('Schrittweite?  ');      

for q=0:n:1
    Model  =  'RefProp';                % Modell: RefProp
    nCmp   =  2;                        % Anzahl der Komponenten hier: 2
    Cmp    =  'R245fa,R365mfc';         % Name der Komponenten
    Cnc    =  [0.5; 0.5];               % Konzentration der Komponenten

    ErrorMsg = invoke(FP,'SetFluid_M',Model,nCmp,Cmp,Cnc); % Befehl v. Bspdat.

    P = 6.543;                          % Benötigter Druck
    [Temperatur_orig,ErrorMsg] = invoke(FP,'Temperature','Pq', P, q);      % Fluidprop sucht Werte zu gewünschten Eingaben, hier Temperatur
    Temperatur_orig;
end
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 29.11.2010, 21:55     Titel: Re: Werte einer For-Schleife in Array eintragen lassen
  Antworten mit Zitat      
Hallo Steffens87,


Zitat:
Und genau diese Temperatur_orig'se (ganz unten) möchte ich anschließend in einem Vektor/Matrix stehen haben, da, wenn ichs so mach, wie es dasteht logischerweise immer nur den letzten "berechneten" Wert von Temperatur_orig habe...

Das Problem wird mir nicht klar. Es ist im Allgemeinen hilfreich, wenn man eine konkrete Frage stellt.

Wie man die "Temperatur_orig" in einen Vektor oder eine Matrix schreibt, hängt davon ab, welche Dimension den die einzelnen Objekte haben. Vielleicht ist dies hilfreich:
Code:

stepsize = 87;
a = linspace(0, 1, stepsize+1);
x = zeros(10, length(a));  % Always pre-allocate!!!
for i = 1:length(a)
  x(:, i) = rand(10, 1) * a(i);
end
 

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
steffens87
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 29.11.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.11.2010, 22:14     Titel:
  Antworten mit Zitat      
Hi, stimmt das hatte ich vergessen zu schreiben...
Also ich bekomme für jedes q, dass ich mit meiner Schleife ja durchlaufen lasse jeweils ein "Temperatur_orig" raus, das ist genau ein Zahlenwert. Sprich von der Dimension her, wäre es z.B. eine Matrix mit einer Spalte und, je nach gewähltem q, die Zeilen mit den einzelnen Werten, die ich dann weiterverarbeiten kann. Zumindest hatte ich es mir so vorgestellt...
So wie es jetzt im Code steht, kriege ich als Temperatur_orig nur den Wert für q=1 und nicht alle für die einzelnen q's davor...

Jetzt einigermaßen klar?!

Danke auf jedenfall für den anderen Code, werde ich morgen mal versuchen einzubaun, ob er mein Problem löst...
Private Nachricht senden Benutzer-Profile anzeigen
 
steffens87
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 29.11.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.11.2010, 11:21     Titel:
  Antworten mit Zitat      
Hallo nochmal, habe mein Skript nochmal biserl umgeschrieben damit mein Problem evtl. noch klarer wird. Notfalls würde es so jetzt auch gehen, aber wirklich "schön" ist es nicht Wink
Code:

n=20;    
a = linspace(0,1,n+1);
Temperatur_orig=zeros(1,length(a));
Temperatur_orig=Temperatur_orig';

    [Temperatur_orig(1),ErrorMsg] = invoke(FP,'Temperature','Pq', P, 0);    
    [Temperatur_orig(2),ErrorMsg] = invoke(FP,'Temperature','Pq', P, 0.05);
    [Temperatur_orig(3),ErrorMsg] = invoke(FP,'Temperature','Pq', P, 0.1);
    [Temperatur_orig(4),ErrorMsg] = invoke(FP,'Temperature','Pq', P, 0.15);
    [Temperatur_orig(5),ErrorMsg] = invoke(FP,'Temperature','Pq', P, 0.2);
    [Temperatur_orig(6),ErrorMsg] = invoke(FP,'Temperature','Pq', P, 0.25);
    [Temperatur_orig(7),ErrorMsg] = invoke(FP,'Temperature','Pq', P, 0.3);
    [Temperatur_orig(8),ErrorMsg] = invoke(FP,'Temperature','Pq', P, 0.35);
    [Temperatur_orig(9),ErrorMsg] = invoke(FP,'Temperature','Pq', P, 0.4);
    [Temperatur_orig(10),ErrorMsg] = invoke(FP,'Temperature','Pq', P, 0.45);
    [Temperatur_orig(11),ErrorMsg] = invoke(FP,'Temperature','Pq', P, 0.5);
    [Temperatur_orig(12),ErrorMsg] = invoke(FP,'Temperature','Pq', P, 0.55);
    [Temperatur_orig(13),ErrorMsg] = invoke(FP,'Temperature','Pq', P, 0.6);
    [Temperatur_orig(14),ErrorMsg] = invoke(FP,'Temperature','Pq', P, 0.65);
    [Temperatur_orig(15),ErrorMsg] = invoke(FP,'Temperature','Pq', P, 0.7);
    [Temperatur_orig(16),ErrorMsg] = invoke(FP,'Temperature','Pq', P, 0.75);
    [Temperatur_orig(17),ErrorMsg] = invoke(FP,'Temperature','Pq', P, 0.8);
    [Temperatur_orig(18),ErrorMsg] = invoke(FP,'Temperature','Pq', P, 0.85);
    [Temperatur_orig(19),ErrorMsg] = invoke(FP,'Temperature','Pq', P, 0.9);
    [Temperatur_orig(20),ErrorMsg] = invoke(FP,'Temperature','Pq', P, 0.95);
    [Temperatur_orig(21),ErrorMsg] = invoke(FP,'Temperature','Pq', P, 1);
 


Ich kriege hier also mit dem invoke Befehl zu einem gewünschten Wert (0 bis 1), hier der allerletzte, jeweils EINEN Wert, nämlich meine Temperatur, die ich dann in die jeweilige Zeile einfüge...
Das Ganze wäre vermutlich schöner (wenn realisierbar), wenn ich dafür eine for-Schleife verwende und so auch die Schrittweite meines Wertes, der von 0 bis 1 durchläuft vergrößern könnte, ohne dass ich nochmehr Zeilen hinzufügen müsste...

Bin über jegliche Anregungen dankbar Wink

Gruß Steffen
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 30.11.2010, 12:47     Titel:
  Antworten mit Zitat      
Hallo,

wie wärs mit folgender for-Schleife:

Code:
werte = 0:0.05:1;
for I=1:21
[Temperatur_orig(I),ErrorMsg] = invoke(FP,'Temperature','Pq', P, werte(I));    
end


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
steffens87
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 29.11.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.11.2010, 12:56     Titel:
  Antworten mit Zitat      
Ah super, genau so hab ich es mir vorgestellt!!

Vielen Dank!!!
Gruß Steffen Smile
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.