How can I draw 2 surfaces in one graph?

1 view (last 30 days)
Vijal Gala
Vijal Gala on 16 Jun 2017
Edited: KSSV on 16 Jun 2017
Hi,
I am trying to create a 3d graph with 2 surfaces as I have 2 sets of 3d data. When i run the programme, the graphs are generated seperately. Please help. Below is the code I used:
function [fitresult, gof] = graph1(a, b, c, d)
[xData, yData, zData] = prepareSurfaceData( a, b, c );
ft = fittype( 'biharmonicinterp' );
opts = fitoptions( ft );
opts.Normalize = 'on';
[fitresult{1}, gof(1)] = fit( [xData, yData], zData, ft, opts );
figure( 'Name', 'surface1' );
h = plot( fitresult{1}, [xData, yData], zData );
xlabel( 'a' );
ylabel( 'b' );
zlabel( 'x' );
grid on
hold on;
[xData, yData, zData] = prepareSurfaceData( a, b, d ),
ft = 'linearinterp';
opts = fitoptions( ft );
opts.Normalize = 'on';
[fitresult{2}, gof(1)] = fit( [xData, yData], zData, ft, opts );
figure( 'Name', 'surface2' );
h = plot( fitresult{2}, [xData, yData], zData );
xlabel( 'a' );
ylabel( 'b' );
zlabel( 'x' );
grid on
Thank you.
  3 Comments
Tina
Tina on 16 Jun 2017
Adam is right. If you use "figure(...)" again after "hold on;", it will ignore the "hold on" and generate a new plot.
Vijal Gala
Vijal Gala on 16 Jun 2017
Thank you. I was able to get it right.

Sign in to comment.

Answers (0)

Tags

Community Treasure Hunt

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

Start Hunting!