MATLAB: Slice and streamslice along diagonal

slicestreamslice

Hello,
I have X,Y,Z,U,V,W 3D arrays of the size 101x201x4. I plotted slice and streamslie in the x-z plane along y = -3 as shown in the attached figure (red line). The code is:
[X,Y,Z] = meshgrid(-4:0.05:6,-5:0.05:0,1:4);
% Plot streamlines for the given cross-section
ssh = streamslice(X,Y,Z,U,V,W,[],-3,[]);
set(ssh,'Color',[0 0 0],'LineWidth',2)
hold on
view(0,0)
% Plot volumetirc slice
Vel = sqrt(U.^2+V.^2+W.^2)
sh = slice(X,Y,Z,Vel,[],-3,[]);
colormap jet
set(sh,'EdgeColor','none',...
'FaceColor','interp',...
'FaceAlpha','interp');
alpha('color');
% c = colorbar('Location','eastoutside');
view(0,0)
zlim([0.5,4]); zl = zlim; zticks([1,2,3,4])
How can I plot the horizontal vs. z direction along the green line in the attached figure? That is, how to specify planes that are not at constant x,y or z?
Attahed is also a plot of what I would like in the diagonal direction, but I made it at y = -3 (red line in Slice.png)
Thank you,
djr

Best Answer

Try this simple example
[x,y,z,v] = flow;
[Z,Y] = meshgrid(-3:0.5:3);
X = 3+(Z.^2+Y.^2)/5;
slice(x,y,z,v,X,Y,Z)
hold on
slice(x,y,z,v,[1 9],2,-2)
hold off
axis vis3d equal