Hello,
I am a new user to Matlab and I am trying to create a surface plot for data analysis, so it would be great if you can assist a fellow newbie.
Attached you will find a sample xls file .
When I am running the below script I am getting an error with the message "Data dimensions must agree."
Did I miss something? Thanks in advance and any help will be much appreciated.
filename = PlotData.xlsx';
num = xlsread(filename) ;
x = num(2:end,1) ;
y = num(1,2:end) ;
Z = num(2:end,2:end) ;
surf(x,y,Z)

1 件のコメント

Andreas Kerasiotis
Andreas Kerasiotis 2021 年 5 月 20 日
Thanks for your swift reply Mathieu, it worked like a charm.
Cheers.

サインインしてコメントする。

 採用された回答

Mathieu NOE
Mathieu NOE 2021 年 5 月 19 日

1 投票

hello Andreas
simply , you inverted x and y vectors
this is correct :
filename = 'PlotData.xlsx';
num = xlsread(filename) ;
x = num(1,2:end) ;
y = num(2:end,1) ;
Z = num(2:end,2:end) ;
surf(x,y,Z)

その他の回答 (1 件)

KSSV
KSSV 2021 年 5 月 19 日

1 投票

x = A(1,2:end) ;
y = A(2:end,1) ;
Z = A(2:end,2:end) ;
surf(x,y,Z) ;

2 件のコメント

KSSV
KSSV 2021 年 5 月 19 日
surf(x,y,Z')
or
surf(y,x,Z)
The above also will work along with the answer given.
Andreas Kerasiotis
Andreas Kerasiotis 2021 年 5 月 20 日
Thanks for your swift reply KSSV, both your answer and Mathieu's worked.
Cheers.

サインインしてコメントする。

カテゴリ

Community Treasure Hunt

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

Start Hunting!

Translated by