Verfasst am: 29.11.2010, 17:42
Titel: Werte einer For-Schleife in Array eintragen lassen
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 ) 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
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
Verfasst am: 29.11.2010, 21:55
Titel: Re: Werte einer For-Schleife in Array eintragen lassen
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
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...
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
Code:
n=20;
a = linspace(0,1,n+1);
Temperatur_orig=zeros(1,length(a));
Temperatur_orig=Temperatur_orig';
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...
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
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.