Matlab 3D-Plot aus CSV Messdatenmatrix

Gast #7231527
Lesenswert?

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!
Angehängte Dateien:
#7232035
Lesenswert?

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')
#7236812
Lesenswert?

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 ;)
#7236869
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren