can you write a vector function?

I am looking to express a parametrized vector function and draw the surface..

2 comentarios

Adam Danz
Adam Danz el 23 de Jun. de 2019
How can we help you with that? Where are you stuck?
Thomas Starai
Thomas Starai el 23 de Jun. de 2019
What is the syntax for something like:
x(u,v) = ( 2-v*sin(u/2)*sin(u), 2-v*sin(u/2)*cos(u), v*cos(u/2) )
?

Iniciar sesión para comentar.

 Respuesta aceptada

Star Strider
Star Strider el 24 de Jun. de 2019
You pretty much wrote it yourself:
x = @(u,v) [2-v.*sin(u/2).*sin(u); 2-v.*sin(u/2).*cos(u); v.*cos(u/2)];
See the documentation sections on Anonymous Functions (link) and Vectorization (link) for an extended discussion of both. The documentation for the ndgrid (link) function will also be helpful.

4 comentarios

Thomas Starai
Thomas Starai el 24 de Jun. de 2019
can I create this function using the smbolic math toolbox?
Star Strider
Star Strider el 24 de Jun. de 2019
You could, however that is going to be slower and less efficient than using the anonymous function implementation.
The Symbolic Math Toolbox is best for derivations and such that are done once, then using the matlabFunction function, implemented iin base MATLAB, taking advantage of its computational efficiencies.
Thomas Starai
Thomas Starai el 24 de Jun. de 2019
Symbolic math is intriging.....efficiency is not an issue.
After looking at anonymous functions, I fail to see why you couldn't just define a function without the @ operator. Can you provided some insigh as to why this is necessary?
Star Strider
Star Strider el 24 de Jun. de 2019
The @ operator denotes a function handle, and is necessary if you want to define it as an anonymous function. You could define it as a function file, however that is usually reserved for more complicated functions. See Function Basics for details.
You don’t have to define it as a function if you don’t want to — it will simply execute as a statement instead, although you could not then use it as a function later in your code — however in your original Question you specified that it is a function. See What Is a Function Handle? for an extended discussion.

Iniciar sesión para comentar.

Más respuestas (1)

Ali Zain
Ali Zain el 6 de En. de 2020

0 votos

y= function(t)=[0.2582;
-0.3631 cos(0.21910*(t);
0.3572 cos(0.4158)(t);
0.3473*cos(0.6180t);
0.3336*cos(0.8135t);
0.3162*cos(t);
0.2954*cos(1.1756t);
0.2714*cos(1.3383t);
0.2443*cos(1.4863t);
0.2146*cos(1.6180t);
0.1826*cos(1.7321t);
0.1485*cos(1.8271t);
0.1128*cos(1.902t);
-0.0759*cos(1.9563t);
0.0382*cos(1.9890t)]
why it is giving error...

1 comentario

Star Strider
Star Strider el 6 de En. de 2020
Except for the second line, there is no multiplication operator.

Iniciar sesión para comentar.

Etiquetas

Preguntada:

el 23 de Jun. de 2019

Comentada:

el 6 de En. de 2020

Community Treasure Hunt

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

Start Hunting!

Translated by