Surf 3D Matrix size issue

4 visualizaciones (últimos 30 días)
Lucas Junghans
Lucas Junghans el 4 de Mayo de 2020
Comentada: Ameer Hamza el 5 de Mayo de 2020
Hello everyone,
currently i try to understand some code i got from my supervisor in college. My task is to create a 3D plot. I've got vector V.x with dimension 1x41 and a vector V.y with dimension 1x41 as well. Besides that i got a 3D Matrix E with the dimension 41x41x301.
I tried to use surf(V.x,V.y,E).
I get an error because of the dimensions must agree.
Where is the Problem? Is it because of the "x301", because E is a 3D Matrix?
If so, how can i fix it?
Sincerely
Lucas

Respuesta aceptada

Ameer Hamza
Ameer Hamza el 4 de Mayo de 2020
Yes, It is because of 3D array. Are you trying to create 301 surfaces? You can plot a single surface like this
surf(V.x, V.y, E(:,:,1))
To plot all 301 surfaces on single axes, use for loop
n = size(E,3);
figure;
ax = axes();
hold(ax)
for i=1:n
surf(V.x, V.y, E(:,:,i));
end
  3 comentarios
Lucas Junghans
Lucas Junghans el 5 de Mayo de 2020
Ok. I guess i just solved my problem thanks to your answer :)
So thanks again.
n = size(E,3);
ax = axes();
hold(ax)
for i=1:n
surf(V.x, V.y, abs(squeeze(E(:,:,i).^2)),angle(squeeze(E(:,:,i).^2)));
end
Ameer Hamza
Ameer Hamza el 5 de Mayo de 2020
I am glad to be of help.
Yes. You can use surf to display a 4th-dimensional value on a surface.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Graphics Performance en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2020a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by