Verfasst am: 02.05.2012, 10:47
Titel: Matlab erkennt Werte nicht
Hallo liebes Forum,
wieder einmal benötige ich Eure Hilfe.
Ich habe ein cell Array "new_sort" in dem alle Elemente eines Querschnitts abgespeichert sind. new_sort{querschnittsnummer}{elementnummer}.
Nun soll Matlab die Koordinaten der Elemente mit einer Matrix vergleichen, in der der Temperaturverlauf mit den dazugehörigen Koordinaten steht. Wenn es Übereinstimmungen bei den z_koordinaten gibt, soll Matlab die Temperaturwerte als 4.Spalte im Cell Array new_sort{querschnittsnummer}{elementnummer} anfügen. Komischerweise funktioniert das alles bis zu 5 Elementen. Sobald ich aber 6 Elemente habe, werden die letzten 2 Werte nicht in der Matrix mit den Temperaturwerten gefunden.
Hier der Code:
Code:
%new_sort{querschnittsnummer}{Elementnummer}
%1. Spalte z_werte, 2. Spalte y_werte, 3. Spalte Fläche des Elements, 4. Spalte Temperatur.
new_sort{1}{6}=
Da der Fehler bei dir aber erst ab einer bestimmten Anzahl von Elementen auftritt, kann es auch durchaus sein, dass da noch etwas anderes nicht funktioniert.
Wie kommst du auf -0.0324? Der Wert steht doch in der ersten Spalte und: "1. Spalte z_werte". Und genau die -32.3661 stehen auch da... Matlab rundet halt in der Anzeige - Was ist denn jetzt dein Problem? 1.0e+03 ?
_________________
Ich hasse es wenn die Leute Fragen stellen, man dann versucht sich Mühe zu geben, und diejenigen ihren Thread nie wieder besuchen...
mein Problem ist, dass die Temperature bei dieser Z-koordinate nicht übernommen wird. Matlab findet den Wert nicht und schreibt in die 4. Spalte des Arrays new_sort{qs}{e}(:,4) anstatt der Temperature 29 eben 0.
new_sort enthält alle Koordinaten der einzel Elemente der Querschnittsteile. Die stimmen auch überein und jetzt soll wiegesagt nur noch die passende Temperatur in die 4. Spalte geschrieben werden.
Hier der Code:
Code:
for qs=1:Anzahl_Querschnitte
for e=1:Anzahl_Elemente
Ich gebe in meinem Programm einen Querschnitt ein. Dieses Querschnitt kann ich beliebig in y und z Richtung teilen. Ich erstelle quasi eine Art Netz.
Nach der Vernetzung habe ich eine Matrix "All_Nodes". Diese Matrix enthält alle Koordinaten der Knotenpunkte des Netzes. In der Matrix QS_Nodes{1} werden alle Koordinaten abgespeichert, die sich im Bereich von Querschnitt 1 befinden.
Im letzten Schritt werden nun die z_werte (1. Spalte von new_sort)mit den z_werten der Temperaturmatrix verglichen (2. Spalte) und die dort vorherrschende Temperatur (Temp_const 4. Spalte) als 4. Spalte in new_sort abgespeichert.
new_sort{qs}{e} entspricht quasi selections_elements{qs}{e}. Nur, dass in selections_elements{qs}{e} die Knotenkoodinaten zeilenweise abgespeichert sind und in new_sort{qs}{e} die Knotenkoordinaten ringförmig abgespeichert.
Probiert man im Matlab eine grafische Ausgabe mit zeilenweise angeordneten Koordinaten, so versucht Matlab diese in Form eines Polygonzuges zuverbinden. Das Ergebnis sieht dann nicht sehr schön aus.
Ich hab mir jetzt noch eine Möglichkeit einfallen lassen. Wenn ich aus der Temperaturmatrix, die ja alle Knotenkoordinaten mit Knotennummer enthält, die Knoten den Querschnittsteilen zuordne, könnte ich einfach die Knotennummer mit abspeichern und dann die Temperature werte über die Knotennummern herraus suchen.
Es ist eigentlich nicht ganz so schön gelöst, aber es funktioniert.
Also, danke nochmal für Eure Mühe.
Phil
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.