When I executed below code it got executed perfectly but in the graph I am getting just the coordinates but not the plot.
Show older comments
f=10; %frequency of the impulse in Hz
fs=f*100; % sample frequency is 10 times higher
t=-1:1/fs:1; % time vector
x= 100*cos(2*pi*1000*t);
y=zeros(size(t));
y(1:fs/f:end)=1;
for t= -1:1/fs:1
m = x.*y;
end
plot(t,m);
Accepted Answer
More Answers (1)
Srivardhan Gadila
on 7 Jun 2021
Based on the above code it is clear that there is no use of the for loop by redefining the variable t to iterate over the loop and the value of m = x.*y; will be same for all the iterations. I think what you are looking for is may be the following:
f=10; %frequency of the impulse in Hz
fs=f*100; % sample frequency is 10 times higher
t=-1:1/fs:1; % time vector
x= 100*cos(2*pi*1000*t);
y=zeros(size(t));
y(1:fs/f:end)=1;
% Removing the for loop
m = x.*y;
plot(t,m);
4 Comments
keerthana reddy
on 7 Jun 2021
Srivardhan Gadila
on 7 Jun 2021
You can Set Breakpoints at lines where the value of x and y are computed and you can see that they have been computed for all the values of t after executing that line itself. Also you can set the breakpoint within the for loop and see that the value of m will be same for every iteration.
keerthana reddy
on 7 Jun 2021
Srivardhan Gadila
on 7 Jun 2021
Edited: Srivardhan Gadila
on 7 Jun 2021
If your equation is m(tidx) = x(tidx) * y(tidx) then the above code in my answer should work fine because with the operator times, .* element wise multiplication is performed so you don't have to iterate over individual elements of the vectors x and y, refer to the documentation of times, .* for more information. If your equation is m(tidx) = x(tidx) * y then you can refer to the below code posted by Walter.
Categories
Find more on Spectral Measurements in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

