Creating 3D plot from a n*n matrix
4 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
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 Commenti
Risposte (1)
Ameer Hamza
il 1 Mag 2020
Modificato: Ameer Hamza
il 1 Mag 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 Commenti
Vedere anche
Categorie
Scopri di più su Surface and Mesh Plots in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!