How to fill inside of an array using a maths function?

Hello, I've started using MatLab today for signal processing problems. However, I can't seem to find a way to fill the array using a function then plotting it.
I need to plot
x1[n] = x1(n*Ts)
where
x1(t) = sin(2*pi. * f0 * t)
and f0 = 440
I've changed x1 function's name to y1 in the code to avoid complications. x1 is my array here.
My code might be a bit confusing since I haven't had a grasp on many of the types of variables.
The plot grid and axes are correct but I get no curve or line on the plot. The command prompt also prints the array as empty. What might I be doing wrong? Any help I get is appreciated.
f0 = 440;
Ts = 0.0001;
syms y1(t)
y1(t) = sin(2*pi.*f0*t);
x1 = []
for n = 1:3
x1(n) = y1(n*Ts);
end
t = 0:seconds(0.0001):seconds(0.01);
plot(t, x1(:,1),'r', 'LineWidth',2);
grid on;
xlabel('t');
ylabel('x1');
title('Sinusoidal Signal');

2 Comments

I suggest you to start from plot
There are few simple examples
Thanks for the reply! I've actually read all the plot manuals but I couldn't understand the array filling and plotting. The problem has now been solve though. Thanks for your time ^^

Sign in to comment.

 Accepted Answer

f0 = 440;
x1 = @(t)sin(2*pi.*f0*t);
t = 0:0.0001:0.01;
plot(t, x1(t),'r', 'LineWidth',2);
grid on;
xlabel('t');
ylabel('x1');
title('Sinusoidal Signal');

2 Comments

Simpler without the function:
t = 0:0.0001:0.01;
x1 = sin(2*pi.*f0*t);
plot(t, x1, ...)
Thanks so much for the quick replies! It works! So we make t a vector so that its matching with x1 array. In the end it does not create any problems when plotting. Did I get it right? O.o
I tried removing the function sign(if I understood it correctly @(t) means dependant on t function) and it works as the way it did before too so yeah this is even more polished!

Sign in to comment.

More Answers (0)

Asked:

on 3 Mar 2020

Commented:

on 3 Mar 2020

Community Treasure Hunt

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

Start Hunting!