How to plot a table in a way that first column and first raw are x and y axis?

33 Ansichten (letzte 30 Tage)
Hello
I have a table of data in csv format (shown below) and want to plot them in Matlab using surf function. First column and first row are the x and y axis. Middel onse are collected data. It seems reading raw is a problem in Matlab. Can anyone suggest an easy way to plot such a table? All my tries failed :(
my data look like this in csv file:
0 100 200 300 400
330 53 45 76 22
340 21 34 32 87
A = readmatrix ('Y1.csv');
x = A(:,1) ;
y = A(1,:) ;
z = A(2:end,2:end) ;
z = transpose(z)
surf (x, y, z)
shading interp

Akzeptierte Antwort

dpb
dpb am 1 Mai 2020
There is no data for the (0,0) coordinate so it can't be in the X,Y vectors---and the Z array must be size(Z)-->[m,n] where X,Y correspond to [m,n]. IOW, you don't transpose...
x = A(2:end,1); % don't include origin; no data point available
y = A(1,2:end); % ditto
z = A(2:end,2:end) ;
surf (x, y, z)
  2 Kommentare
Masoud Taleb
Masoud Taleb am 1 Mai 2020
Thank you very much. I got the point. Your written code worked after I added transpose to it. So, everything is fine now :)
dpb
dpb am 1 Mai 2020
Bearbeitet: dpb am 1 Mai 2020
"Your written code worked after I added transpose "
My code works as written; I see you used the alternate for X and Y than I did...I thought I pulled that from your original posted code, too, but apparently not.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Line Plots finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by