MATLAB How can I extrude a 2D curve in MATLAB along the Z direction?

  • Thread starter Thread starter marellasunny
  • Start date Start date
  • Tags Tags
    2d Curve
AI Thread Summary
To extrude a 2D curve in the X-Y plane along the Z direction in MATLAB, one can add a third dimension by creating a vector of Z values that represent the extrusion length. The provided MATLAB code demonstrates this by defining a polynomial function and plotting it in 3D using a loop to increment the Z values. However, to create a surface from multiple curves, the Z variable must be a matrix rather than a vector. The error encountered when using the surf function indicates that the Z input is not formatted correctly. To resolve this, it is essential to ensure that the Z data is structured as a matrix that corresponds to the X and Y grid. Understanding how to properly plot in 3D and manipulate matrices in MATLAB is crucial for achieving the desired surface fitting from the curves.
marellasunny
Messages
245
Reaction score
3
Hi all!
I would like to extrude a 2d curve in the X-Y plane along the Z direction,thereby wanting to obtain a plane of Z units long.How should I proceed?
Is there a tool especially for this in MATLAB?
 
Physics news on Phys.org
matlab or not, if all you want to do is extrude such line in a straight line, all you need to do is add the third dimension (z), add a bunch of consecutive numbers to it z=1,2,3,4... and then simply broadcast the same x,y values along the third dimension.
 
Ok,I created it for a polynomial function(MATLAB CODE)
x=0:.1:10;
y=0:.1:10;
f=@(x)0.6.*x.^3+1.9.*x.^2+3.*x+25;
y=f(x);
z=zeros(size(x));
for i=0:.1:10
z1=z+i;
plot3(x,y,z1)
drawnow;
pause(eps);
hold on
end

Question:How do I 'fit' a surface through all these curves(assuming the curves are slightly different but parallel)?,how do I use these level curves to make a surface?"
I get an error saying"? Error using ==> surf at 78
Z must be a matrix, not a scalar or vector." when I insert the command
surf(x,y,z1)
is creating a surface the same as creating a mesh?
 
Last edited:
first of all, I do not know matlab

second, your z1 variable is a one-dimensional vector only to which you are assigning, one at a time the values 0, 1, 2, 3, etc. Your z variable remains zero since initialized, you never assigned anything to it.

I think you first need to learn how to plot 3D, do an exercise from the user's manual and figure out what x, y, and z need to be.
 
I am using z1 as the z coordinate,not z.
z1=z+i;
plot3(x,y,z1)
It would helpful if someone can answer the queries above.
Thank you.
 

Similar threads

Back
Top