When I executed below code it got executed perfectly but in the graph I am getting just the coordinates but not the plot.

1 Ansicht (letzte 30 Tage)
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);

Akzeptierte Antwort

Walter Roberson
Walter Roberson am 7 Jun. 2021
f=10; %frequency of the impulse in Hz
fs=f*100; % sample frequency is 10 times higher
t=-1:1/fs:1; % time vector
numt = length(t);
y=zeros(size(t));
y(1:fs/f:end)=1;
for tidx = 1 : numt
x = 100*cos(2*pi*1000*t(tidx));
m(tidx, :) = x.*y;
end
plot(t,m);
  7 Kommentare
Walter Roberson
Walter Roberson am 7 Jun. 2021
f = 10; %frequency of the impulse in Hz
fs = f * 7; % sample frequency is 7 times higher
t =-1/10:1/fs:1/10; % time vector
y = 100*cos(2*pi*1000*t);
stem(t, y)
Notice that we reduced the sampling frequency and the time interval.
Notice too that no loop was needed.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Srivardhan Gadila
Srivardhan Gadila am 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 Kommentare
keerthana reddy
keerthana reddy am 7 Jun. 2021
Yeah, I just checked putting breakpoints. But, can you tell me how can I get different x at different t. But y value should be constant and when I execute m = x.*y I need to get discrete values.
Srivardhan Gadila
Srivardhan Gadila am 7 Jun. 2021
Bearbeitet: Srivardhan Gadila am 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.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Graphics Performance finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by