Hallo zusammen, ich würde gerne aus der angehängten csv Datei ein 3D-Plot mit Matlab generieren. Die Position der Messung ist durch die 1 Zeile (x-Richtung) und erste Spalte (y-Richtung) vorgebeben. Das heißt sie sind nicht in dem Format, so dass ich sie gleich den Funktionen surf oder plot3 übergeben kann. Also ich habe nicht jede einzelne Koordinate in der CSV Datei geben, sondern eher eine "Messmatrix". Weiß jemand wie man das plotten kann? Ich habe es auch noch nicht geschafft die csv Datei in Matlab einzulesen. Vlt. kann mir dazu auch jemand einen Tipp geben. Danke schon mal!
data = dlmread ("C:/users/emm/Downloads/messmatrix.csv", ";", 1, 1, "emptyvalue", NA); surf(data)
Ich würde `dlmread` nicht mehr nutzen, nimm readtable (https://www.mathworks.com/help/matlab/ref/readtable.html). Unten ein Code Beispiel, das auch die x und y Koordinaten berücksichtigt.
1 | T = readtable("D:\Downloads\Messmatrix.csv", Delimiter=";", DecimalSeparator=","); |
2 | |
3 | xCoord = T{1,2:end}; % 1. Zeile |
4 | yCoord = T{2:end,1}; % 1. Spalte |
5 | zData = T{2:end, 2:end}; % Daten "Matrix" |
6 | |
7 | % surf braucht ein grid mit derselben Größe wie die Daten |
8 | [xGrid, yGrid] = meshgrid(xCoord, yCoord); |
9 | |
10 | % plot me |
11 | surf(xGrid, yGrid, zData); |
12 | xlabel('x'), ylabel('y'), zlabel('z') |
Jan K. schrieb: > Ich würde `dlmread` nicht mehr nutzen, nimm readtable > (https://www.mathworks.com/help/matlab/ref/readtable.html). Was wäre dafür der Grund? O.g. Anforderung kann man auch mit Excel direkt lösen.
MATLAB-user schrieb: >> Ich würde `dlmread` nicht mehr nutzen, nimm readtable >> (https://www.mathworks.com/help/matlab/ref/readtable.html). > Was wäre dafür der Grund? deprecated
MATLAB-user schrieb: > Jan K. schrieb: >> Ich würde `dlmread` nicht mehr nutzen, nimm readtable >> (https://www.mathworks.com/help/matlab/ref/readtable.html). > Was wäre dafür der Grund? Dlmread ist halt Low Level file I/o. Ggf sogar deprecated mittlerweile. Readtable ist eine high level Funktion, die viel mehr kann und auch viel selbsterklärender ist, was die Parameter angehen. Zurück kommt ein table Datentyp, auf den das gesamte ML ecosystem momentan migriert. Für das Beispiel hier hat es keine großen Vorteile außer der Parameter, true. Für ganz ganz viele weitere aber schon. Und es hat keine Nachteile, daher kann man es jetzt schon nutzen;) > > O.g. Anforderung kann man auch mit Excel direkt lösen. Jo.. aber meistens möchte man ja auch mehr machen. Und wer Matlab hat, der möchte für die wenigsten Dinge noch Excel nutzen ;)
Anonymus_bugmenot A. schrieb: > deprecated dlmread ist zwar deprecated, aber die Doku immer noch extrem gut. Und sie leitet auf alle daraus abgeleiteten Funktionen weiter. Ich hätte einfach csvread() genutzt.
:
Bearbeitet durch User
csvread ist ebenso nicht mehr empfohlen, sondern readmatrix() und das ist eben Teil der neueren readxxx() Funktionen, zu der auch readtable gehört. In der Tat ist hier readmatrix wohl die bessere Funktion als readtable, die ich oben vorschlug, weil die Daten eigentlich nicht tabellarisch sind. Die Funktionsparameter sind aber identisch.
Jan K. schrieb: > csvread ist ebenso nicht mehr empfohlen, sondern readmatrix() und das > ist eben Teil der neueren readxxx() Funktionen, Werden aber nicht eingestellt, oder?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.