Surf 3D Matrix size issue

2 visualizzazioni (ultimi 30 giorni)
Lucas Junghans
Lucas Junghans il 4 Mag 2020
Commentato: Ameer Hamza il 5 Mag 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

Risposta accettata

Ameer Hamza
Ameer Hamza il 4 Mag 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 Commenti
Lucas Junghans
Lucas Junghans il 5 Mag 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 il 5 Mag 2020
I am glad to be of help.
Yes. You can use surf to display a 4th-dimensional value on a surface.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Graphics Performance in Help Center e File Exchange

Prodotti


Release

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by