|
Atmos_kk |

Forum-Fortgeschrittener
|
 |
Beiträge: 93
|
 |
|
 |
Anmeldedatum: 23.05.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 31.05.2011, 14:41
Titel: 3D Plot contour
|
 |
Hallo zusammen,
ich möchte gerne in Matlab ein Höhendiagramm erstellen allerdings meckert Matlab immer bei meinen Vektoren.
Kann mir einer sagen, wie meine Vektoren formatiert sein müssen um da was ordentliches zu bekommen?
Zu meinen Werten:
x=Frequenz [1x4751]
y=Zeit [1x4751]
z=Beschleunigung [1x4751]
ich weiß im Moment wirklich nicht wie ich weiter vorgehen soll.
Greetz
|
|
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 31.05.2011, 15:54
Titel: Re: 3D Plot contour
|
 |
Hallo Atmos_kk,
Um Dir einen Rat geben zu können, müsstest Du noch den dazugehörigen Code und die Fehlermeldung kopieren. Dass "Matlab meckert" und Du ein "Höhendiagramm" erstellen möchtest, ist zu wenig Information.
Gruß, Jan
|
|
|
Atmos_kk |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 93
|
 |
|
 |
Anmeldedatum: 23.05.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 31.05.2011, 16:02
Titel:
|
 |
Moin,
warum soll ich Sachen hochladen die so völlig falsch sind wie meine?
Der Code ist relatif einfach:
contour(X,Y,Z);
Fehlermeldung:
??? Error using contour at 73
Z must be size 2x2 or greater
Error in peakserfassen at 230
contour(X,Y,Z);
[/code]
|
|
|
mawi |

Forum-Century
|
 |
Beiträge: 106
|
 |
|
 |
Anmeldedatum: 14.04.11
|
 |
|
 |
Wohnort: Stuttgart
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 31.05.2011, 16:08
Titel:
|
 |
Das kann eigentlich auch nicht funktionieren weil du meiner Meinung nach für ein Kennfeld 2 Vektoren und eine Matrix benötigst.
Man kann aus 3 Vektoren nicht direkt ein kennfeld erzeugen, wie auch...
Du müsstest also aus einem Vektor mit Hilfe der beiden anderen eine Matrix berechnen. Das geht wenn du zum Beispiel den darzustellenden Messwert systematisch abhängig von den beiden anderen aufnimmst.
Damit würdest du Messpunkte in einem fiktiven Kennfeld aufnehmen.
a = [1 1 2 2 3 3 4 4];
f = [1 2 1 2 1 2 1 2];
t = [4 2 6 3 6 3 6 4];
Daraus könntest du zum beispiel ein Kennfeld erzeugen mit den Achsenvektoren.
a_new = [1 2 3 4];
f_new = [1 2];
Deine Matrix hätte damit 2*4 Elemente, was ja auch die Summe der Elemente deines Vektors ist.
|
|
|
Atmos_kk |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 93
|
 |
|
 |
Anmeldedatum: 23.05.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 01.06.2011, 07:37
Titel:
|
 |
Moin zusammen,
also das mit der Matrix hab ich verstanden aber da hört es auch schon wieder auf.
Ich kann doch nicht einfach meine Messpunkte verringern. Dabei gehen doch ganz klar zu viele Daten verloren. Oder verstehe ich das schon wieder falsch?
Aus a mache ich 1/2 und f wird soger 1/4?
Das muss doch auch anders gehen!
Greetz
|
|
|
mawi |

Forum-Century
|
 |
Beiträge: 106
|
 |
|
 |
Anmeldedatum: 14.04.11
|
 |
|
 |
Wohnort: Stuttgart
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 01.06.2011, 07:51
Titel:
|
 |
Sagen wir du willst Messbereiche abhängig von a und f aufnehmen, dann kannst du dir das quasi als Messkennfeld vorstellen.
Das kannst du entweder Spaltenweise (mx steht für Messungsnummer)
a
1 2 3 4
1 m1 m3 m5 m7
f 2 m2 m4 m6 m8
oder Zeilenweise machen
a
1 2 3 4
1 m1 m2 m3 m4
f 2 m5 m6 m7 m8
Je nachdem wie du die Messungen aufnimmst bekommst du unterschiedliche Messvektoren.
Spaltenweise:
a = [1 1 2 2 3 3 4 4];
f = [1 2 1 2 1 2 1 2];
t = [m1 m2 m3 m4 m5 m6 m7 m8];
Zeilenweise:
a = [1 2 3 4 1 2 3 4];
f = [1 1 1 1 2 2 2 2];
t = [m1 m2 m3 m4 m5 m6 m7 m8];
Daraus kannst du jetzt ja wieder die Messmatrix aufbauen die du abgefahren bist.
also
m1 m3 m5 m7
m2 m4 m6 m8
oder eben zeilenweise.....
somit kriegst du die Achsenvektoren
a_new = [1 2 3 4];
f_new = [1 2];
und es fehlen keinerlei Messwerte...
|
|
|
Atmos_kk |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 93
|
 |
|
 |
Anmeldedatum: 23.05.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 01.06.2011, 08:04
Titel:
|
 |
Moin mawi,
anscheinend ist das etwas zu hoch für mich!
Also mein Problem ist, dass ich im Moment nicht weiß wie ich das realisieren soll.
Abhängig voneinander sind alle Vektoren. Ich habe bei der Messung die Beschleunigung über die Zeit aufgenommen in 6 Messungen. Mit allen eine FFT durchgeführt, diese gemittelt und dann wieder in Beschleunigung über die Zeit aufgetragen. Nun muss ich wieder eine FFT mit den neuen Werten machen und habe dann meine 3 Vektoren für Beschleunigung (a), Zeit (t) und Frequenz (f).
Das heißt aber für mich, dass ich garkeinene Matrix aus 2 Vektoren mehr erstelle. Ich will nur auf die x-Achse die Frequenz auftragen, auf die Y-Achse die Zeit und auf die z-Achse die Beschleunigung und die 3 Vektoren sind doch bereits vorhanden! Wozu also etwas berechnen?
Wenn du noch den Nerf und die Zeit dazu hast mir das zu erklären, immer zu.
Greetz
|
|
|
BlackDread |

Forum-Century
|
 |
Beiträge: 212
|
 |
|
 |
Anmeldedatum: 11.05.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: 2015a
|
 |
|
|
 |
|
Verfasst am: 01.06.2011, 08:26
Titel:
|
 |
Hallo Atmos,
mit deinen drei Vektoren kannst du höchstens eine Linie in ein 3D-Plot zeichnen
Wenn du unbedingt ein Höhendiagramm brauchst lies dir vllt erst mal
durch
mfg Chris
|
|
|
mawi |

Forum-Century
|
 |
Beiträge: 106
|
 |
|
 |
Anmeldedatum: 14.04.11
|
 |
|
 |
Wohnort: Stuttgart
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 01.06.2011, 08:54
Titel:
|
 |
ok, ich hab dich etwas falsch verstanden.
Das Problem ist jedoch weiterhin, das der Z-Wert bei einem Kennfeldplot eine Matrix sein muss.
Wenn du 2 Vektoren der länge 6 hast brauchst du eine 6x6 Matrix.
Von diesen 36 Elementen hast du aber nur 6, alle anderen sind unbekannt.
Interpolieren/Extrapolieren ist bei so wenig Daten auch Blödsinn.
Ich fürchte BlackDread hat recht, die einzige möglichkeit ist plot3
Für ein contour, surf, etc...diagramm hast du einfach zu wenig werte.
|
|
|
Atmos_kk |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 93
|
 |
|
 |
Anmeldedatum: 23.05.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 06.06.2011, 08:00
Titel:
|
 |
Moin zusammen,
alles ja ganz nett, aber wo mache ich denn dann meinen Fehler? Ich muss doch irgendwei aus meinen Messwerten ein Wasserfalldiagramm oder einen contour-plot erstellen können.
Kann mir einer sagen wie ich da hinkomme? Unsere Messsoftware bekommt das doch auch hin!
Greetz
|
|
|
Atmos_kk |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 93
|
 |
|
 |
Anmeldedatum: 23.05.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 06.06.2011, 13:29
Titel:
|
 |
Hallo nochmal,
es muss doch jemanden geben, der mir in diesem Fall helfen kann! Irgendwie muss es doch dafür eine Lösung geben!
Greetz
|
|
|
LittleX |

Forum-Guru
|
 |
Beiträge: 494
|
 |
|
 |
Anmeldedatum: 14.05.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 07.06.2011, 09:35
Titel:
|
 |
Hallo,
wenn Du einen Contour oder surface plot haben willst, benötigst Du eine Matrix. Die Matrix kannst Du durch Interpolation mit Hilfe von
erzeugen. Schau Dir mal das Beispiel in der Hilfe an.
Viele Grüße,
LittleX
|
|
|
|
|
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
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| 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.
|
|