How do I plot Sinusoidal wave over a circle in Matlab?

 Respuesta aceptada

I'm not sure if I 100% understood your question, but here it is
t = 0:0.01:2*pi; %define interval
x = cos(t);
y = sin(t);
figure;
plot(x,y); %normal circle
%%
f = 10; %define modulation frequency
A = .2; % modulation amplitude
R = A*cos(f*t); %
x = cos(t) + R;
y = sin(t) + R;
figure;
plot(x,y); %similar to your example
%%
x = cos(t).*(1 + R);
y = sin(t).*(1 + R);
figure;
plot(x,y); %modulating the radius

7 comentarios

loyyy
loyyy el 22 de Feb. de 2022
Hi, thank you for your response. It should be 3 dimensional.
like so?
t = 0:0.01:2*pi; %define interval
x = cos(t);
y = sin(t);
f = 10; %define modulation frequency
A = .2; % modulation amplitude
R = A*cos(f*t); %
z = R;
figure;
plot3(x,y,z);
loyyy
loyyy el 24 de Feb. de 2022
Thank you.
no problem. If you could please accept an answer so we can close this quesiton.
loyyy
loyyy el 6 de Mzo. de 2022
Hi @Arthur Reis! Follow up question. If I want to pick 120 points/vertices in the closed curve (equal distances) and extarct their coordinates. What will be the codes then? Hoping you could help me on this problem, as soon as possible. Thank you very much.
Hello,
you'll only need to change the definition of the 't'. You can use linspace to get an linearly spaced array with expecific number of points (120 in this case). So:
tp = linspace(0,2*pi,120); %new array
xp = cos(tp);
yp = sin(tp);
f = 10; %define modulation frequency
A = .2; % modulation amplitude
Rp = A*cos(f*tp); %
zp = Rp;
figure;
scatter3(xp,yp,zp);
Their coordinates are xp, yp, zp.
Does this solve your problem?
loyyy
loyyy el 10 de Mzo. de 2022
Yes, Thank you.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Line Plots en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 22 de Feb. de 2022

Comentada:

el 10 de Mzo. de 2022

Community Treasure Hunt

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

Start Hunting!

Translated by