MATLAB: Surf 3D Matrix size issue

3d plotsMATLABMATLAB and Simulink Student Suitesurf

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 1×41 and a vector V.y with dimension 1×41 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

Best Answer

  • 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