Help with the surf function
Afficher commentaires plus anciens
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
Réponses (1)
Walter Roberson
le 28 Avr 2021
surf(k, m, z.')
Remember that the rows correspond to y not to x
5 commentaires
Falon Treis
le 28 Avr 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
le 28 Avr 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
le 28 Avr 2021
Catégories
En savoir plus sur Annotations dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

