Creating 3D plot from a n*n matrix
4 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
I wanted to create a 3D plot from a 100*100 matrix, with two other vectors with length 100 that serves as the axis for the plot.
This was the code that I wrote but the most of it is just defining the main matrix, the important part is at the bottom where its supposed to make the 3D plot.
N = 100;
ka = linspace(0,0.99,100);
pa = linspace(0,pi/2,100);
K = zeros(N,1);
E = zeros(N,1);
for i = 1:N
for n = 1:N
k = ka(i);
p = pa(n);
funK=@(t)(1-(k^2)*(sin(t)).^2).^(-0.5);
Kf=@(x)integral(funK,0,x);
K(i,n) = Kf(p);
funE=@(t)(1-(k^2)*(sin(t)).^2).^(0.5);
Ef=@(x)integral(funE,0,x);
E(i,n) = Ef(p);
end
end
[ka,pa] = meshgrid(ka,pa);
%hold on
surf(ka,pa,K);
surf(ka,pa,E);
%hold off
Error says that the dimensions differ (for surf() )
Is there any way to fix this?
Thanks
4 comentarios
Respuestas (1)
Ameer Hamza
el 1 de Mayo de 2020
Editada: Ameer Hamza
el 1 de Mayo de 2020
'hold on', fix the view of the axes. You can explicitly specify to see the 3D view. Change the line at the end of your code like this
hold on
view(3) % add this line for 3D view
surf(ka,pa,K);
surf(ka,pa,E);
% shading interp % this line is optional, just to make the surface looks more clear
hold off
0 comentarios
Ver también
Categorías
Más información sobre Surface and Mesh Plots en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!