Hallo,
habe ein Problem mit Filtern und anschließendem Plotten von Werten. Es gibt verschiedene y-Achsen und ein x-Achse. Wobei die Vektorlänge der y-Werte unterschiedlich ist. Vereinfacht soll das ganze so aussehen:
x y1 y2
1 1 -
2 2 1
3 3 2
4 4 -
Der bisherig vereinfachte Code lautet:
Code:
pinj=1.013
p0=0.04
Ts=XSteam('Tsat_p',p0)
p=50;
q = 1;
s = -1;
r=99;
i=1;
for TmaxC = r:s:q,
dTshmax=TmaxC-Ts
if(dTshmax<=0), break, end
We=Weitere Berechnung in Abhängigkeit von dTshmax
A(i,1)=TmaxC
A(i,2)=dTshmax
A(i,3)=Ts
A(i,4)=We
i=i+1;
end for TinjC = p:s:q,
dTsh=TinjC-Ts
if(dTsh<=0), break, end
B(i,1)=TinjC
B(i,2)=dTsh
i=i+1;
end
Aufgetragen soll nun x= We, y1=dTshmax, y2=dTsh. dTsh schreibt wie erwartet Nullen bevor dTshmax = dTsh wird. Nun bekomme ich es nicht hin, dass die Routine die passenden x-Werte zu den y2-Werten herausfiltert und aufträgt. Mit
und diversen anderen Formulierungen funktioniert es leider nicht. Auch das "händische" Auftragen im Plotting Tool geht nicht. Dann bekomme ich die Fehlermeldung sinngemäß: "Vectors must have the same length".
Ich hoffe es gibt eine simple Lösung und danke schon mal für Vorschläge.
und diversen anderen Formulierungen funktioniert es leider nicht.
Bitte poste den verwendeten Code und die Fehelermeldung, bzw Beschreibung des Unterschiedes zwischen Erwartungen und Ergebnissen. "Funktioniert nicht" hilft uns nicht weiter. Auch sinngemäße Wiedergaben der Fehlermeldungen verbergen oft wichtige Details. Eine Kopie ist besser.
Hier steht im Code eine Zuweisung, nämlich B(i,2)=A(i,2). Meinst du vielleicht "==" ?
Ich verstehe nicht, was das Problem mit dem FILTER-Befehl zu tun hat. Ich vermute ein "logical Indexing" ist gesucht.
Möchtest Du also eine Tabelle ausgeben? Was bedeutet das Minus-Zeichen hier?
Das sollte den kürzeren Vektor verdeutlichen "-" steht für kein Wert bzw. 0. Tabelle möchte ich nicht ausgeben, sondern die y-Daten sollen grafisch über die gleichen x-Werte aufgetragen werden.
Zitat:
Bitte poste den verwendeten Code und die Fehelermeldung, bzw Beschreibung des Unterschiedes zwischen Erwartungen und Ergebnissen. "Funktioniert nicht" hilft uns nicht weiter. Auch sinngemäße Wiedergaben der Fehlermeldungen verbergen oft wichtige Details. Eine Kopie ist besser.
Fehlermeldung:
??? Index exceeds matrix dimensions.
Error in ==> Untitled at 41
filter(1,B(i,1)==A(i,1),A(i,3))
Erwartung: Das automatisch die y2-Werte (dTsh) den passenden x-Werten (We) zugeordnet werden und nicht nur die y1-Werte (dTshmax). Das diese Werte sozusagen "herausgefiltert" werden. Ob nun der FILTER-Befehl der richtige ist oder nicht, habe ich gehofft hier zu erfahren. Habe schon länger den Verdacht, dass er dafür evtl. nicht geeignet ist
Hoffe es ist jetzt ein bisschen klarer geworden.
Gruß,
hendymendy
Hallo Jan,
habe es leider so nicht hinbekommen. Das Problem war auch nie wirklich das Plotten, sondern die zu plottenden Daten aus den beiden for Schleifen zu verknüpfen, da die Vektoren unterschiedliche Länge haben. Auch kenne ich deren länge i.d.R. nicht. Lasse nun alles einfach in beiden for-Schleifen doppelt berechnen mit unterschiedlichen Laufnummern, damit gehts.
Code:
pinj=1.013
p0=0.04
Ts=XSteam('Tsat_p',p0)
p=50;
q = 1;
s = -1;
r=99;
i=1;
k=1;
for TmaxC = r:s:q,
dTshmax=TmaxC-Ts
if(dTshmax<=0), break, end
We=Weitere Berechnung in Abhängigkeit von dTshmax
A(i,1)=TmaxC
A(i,2)=dTshmax
A(i,3)=Ts
A(i,4)=We
i=i+1;
end for TinjC = p:s:q,
dTsh=TinjC-Ts
if(dTsh<=0), break, end
We=Weitere Berechnung in Abhängigkeit von dTsh
B(i,1)=TinjC
B(i,2)=dTsh
B(k,3)=We
k=k+1;
end
plot1(A(:,4), A(:,2), B(:,3), B(:,2))
Für Vorschläge zur Vereinfachung, Verknüpfung oder Zusammenfassen der for-Schleife bin ich dennoch dankbar. Da ich doch wahrscheinlich einen eher unnötig komlizierten Weg genommen habe
Gruß,
hendymendy
Einstellungen und Berechtigungen
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.