What should be dimension of surf(X,Y,Z) 3D?

12 views (last 30 days)
I have profile of earth. Surface plot and dimension is not same so How can I plot ?
clc;
close all;
clear all;
format long g;
load('dtm.mat'); %% using old data sets
% plotting the value %%
figure()
title('DTM of the surface of Mountain')
surf(transpose(hw),rw,Z);
xlabel('Longitude')
ylabel('Lateral')
zlabel('Vertical height')
  2 Comments
SALAH ALRABEEI
SALAH ALRABEEI on 11 Jun 2021
what is the size of each variable!!
vimal kumar chawda
vimal kumar chawda on 11 Jun 2021
Please check in dtm.mat attachment. Its hw=x=1*451 or rw=y=1*501 and z = 451*501. But my error is dimension should be same in surf. How can I deal with it?

Sign in to comment.

Answers (2)

Kelly Kearney
Kelly Kearney on 11 Jun 2021
You just need to transpose Z:
surf(hw, rw, Z')

Sulaymon Eshkabilov
Sulaymon Eshkabilov on 12 Jun 2021
There are a few errs and missing points in your code. Here is the corrected complete code.
clearvars;
format long g;
load('dtm.mat'); %% using old data sets
% plotting the value %%
[Hw, Rw] = meshgrid(hw, rw); % Meshgrid is required for 3D plots for x, y axes
figure()
title('DTM of the surface of Mountain')
surf(Hw,Rw,Z'); % Transpose of Z is necessary here
xlabel('Longitude')
ylabel('Lateral')
zlabel('Vertical height')

Products


Release

R2021a

Community Treasure Hunt

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

Start Hunting!