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

11 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
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!