import data and plat a 3D

I do have a excel file with 3 columns (x y z). I wanna import them to Matlab, and plot a nice surface Plot.i might have to interpolate?

2 件のコメント

Rik
Rik 2019 年 12 月 20 日
If it is a full grid of x and y, there will be no need for interpollation. Can you share your actual data, or a functional equivalent?
Verena Salan
Verena Salan 2019 年 12 月 20 日
here are my data

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

回答 (2 件)

Rik
Rik 2019 年 12 月 20 日

1 投票

No interpollation required, just a conversion to a 2D matrix. You can adapt the syntax of accumarray if you do have any missing values (by default it will fill with 0).
num=xlsread('test1.xlsx');
x=num(:,1);
y=num(:,2);
P=num(:,3);
%find the unique x and y values and use them as indices to fill the Z
[X,~,x_]=unique(x);
[Y,~,y_]=unique(y);
Z=accumarray([x_,y_],P);
[X,Y]=ndgrid(X,Y);
surf(X,Y,Z)

10 件のコメント

Verena Salan
Verena Salan 2019 年 12 月 20 日
Hi
thank you very much.
I got 2 hills. Do you know how i can get the volume from the right hill?
ME
ME 2019 年 12 月 20 日
編集済み: ME 2019 年 12 月 20 日
Nice solution. You could also use the reshape function to get your z-data into the correct format.
I had assumed the data wouldn't be uniform over x and y - I suppose I should ask more questions in future!
Verena Salan
Verena Salan 2019 年 12 月 20 日
@ME : how would it look like with the reshape function?
Rik
Rik 2019 年 12 月 20 日
The reshape method has the downside that you need to be sure about the orientation of your data. It will also fundamentally break if you don't have a complete grid.
Also note that surf will handle non-uniform spacing of values, it just needs a full grid (which is allowed to contain NaN values).
As to the question of how to get the volume: figure out a way to set the other hill to 0 and then use a 2D integration to find the volume.
Verena Salan
Verena Salan 2020 年 1 月 2 日
Because of the volume, can't figure out how to do that.
Rik
Rik 2020 年 1 月 2 日
What have you tried?
Verena Salan
Verena Salan 2020 年 1 月 6 日
Does anyone has any ideas how i could get the volume? don't know how.
Rik
Rik 2020 年 1 月 6 日
What have you tried so far?
Verena Salan
Verena Salan 2020 年 1 月 6 日
don't know how
Rik
Rik 2020 年 1 月 6 日
On a conceptual level, what would you do? If you needed to do it on paper, what would your approach be?

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

ME
ME 2019 年 12 月 20 日

0 投票

I think you are correct about the need to interpolate. You could try having a read of the link below - that should give you some good pointers.

カテゴリ

タグ

質問済み:

2019 年 12 月 20 日

コメント済み:

Rik
2020 年 1 月 6 日

Community Treasure Hunt

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

Start Hunting!

Translated by