Help with the surf function
Show older comments
I am trying to create a surface plot of a matrix I created, but I need to make lattitude and longitue in to 180x360 matrices as well in order for the function to work. My code is below:
%Plot Slopematrix
addpath('C:\Users\Falon Treis\Documents\MATLAB\CE1_2C_slopematrix.mat');
%addpath('C:\Users\Falon Treis\Documents\MATLAB\CE2_2C_slopematrix.mat');
load('CE1_2C_slopematrix.mat')
k = 1:180; %lat make have 180x 360 matrix
m = 1:360; %long
z = slopematrix; %180x360
surf(k, m, z)
%surf(k, m, z)
save CE1_2C_slope_plot.mat
%save CE2_2C_slope_plot.mat
Answers (1)
Walter Roberson
on 28 Apr 2021
surf(k, m, z.')
Remember that the rows correspond to y not to x
5 Comments
Falon Treis
on 28 Apr 2021
A demonstration that transposing z does work:
k = 1:180; %lat make have 180x 360 matrix
m = 1:360; %long
slopematrix = sort(rand(length(k), length(m)));
size(slopematrix)
z = slopematrix;
try
surf(k, m, z)
disp("(k,m,z) succeeded!");
catch ME
disp("(k,m,z) failed!");
end
try
surf(k, m, z.')
disp("(k,m,z.') succeeded!");
catch ME
disp("(k,m,z.') failed!");
end
Falon Treis
on 28 Apr 2021
lat is vertical, not horizontal, so you should not be using it as your x.
k = 1:180; %lat make have 180x 360 matrix
m = 1:360; %long
slopematrix = sort(rand(length(k), length(m)));
size(slopematrix)
z = slopematrix;
surf(m, k, z)
xlabel('long')
ylabel('lat')
zlabel('slope')
Falon Treis
on 28 Apr 2021
Categories
Find more on Annotations in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
