how to plot curve using data from for loop

3 ビュー (過去 30 日間)
Roman Barancin
Roman Barancin 2013 年 4 月 9 日
i need help with plotting this equation using for loop. I found solution already posted here, but i wasnt able to implement it on my problem. (Currently this will plot only one dot (i assume thats the last value from for loop)
for K = [1 2 3 4 5]
Q=0.49;
Rac=0.0015;
m=K;
freq=(K*9000);
Cr=1/(2*pi*Q*freq*Rac);
Lr=1/(((2*pi*freq)^2)*Cr);
Lp=m*Lr;
w=2*pi*freq;
w0=1/(sqrt(Lr*Cr));
wp=1/(sqrt(Lp*Cr));
Race=14685.973;
Qe=(sqrt(Lr/Cr))*(1/Race);
%///////////////////////////////////////
citatel=((w^2)/(w0^2).*(sqrt(m.*(m-1))));
menovatel=(((w^2)/((wp^2))-1)+1i.*(w/w0).*(((w^2)/(w0^2))-1).*(m-1).*Qe);
gain=(citatel/menovatel);
plot(freq,gain);
end

採用された回答

Jan
Jan 2013 年 4 月 9 日
Either insert hold('on') bevor the loop, such that the plot() command does not delete formerly existing points. Or collect the data at first and draw them after the loop as a line:
freqV = zeros(1, 5);
gainV = zeros(1, 5);
for K = 1:5
... % No changes here
% Instead of:
% plot(freq,gain);
freqV(K) = freq;
gainV(K) = gain;
end
plot(freqV, gainV);

その他の回答 (1 件)

Tobias
Tobias 2013 年 4 月 9 日
Change your freq and gain variables, so they're both a function of k. All values will be stored that way and your plot should work. The syntax is:
freq(K) = (K*9000);
gain(K) = (citatel/menovatel);

カテゴリ

Help Center および File ExchangeNumerical Integration and Differential Equations についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by