필터 지우기
필터 지우기

Why i am getting an empty plot?

조회 수: 2 (최근 30일)
Salah
Salah 2023년 1월 8일
댓글: Voss 2023년 1월 9일
%% i have this 4x18 matrix, and i want to plot the function resulting from each coloumn vs the number of coloumn
N = [1.551e-5 0.0011 0.0011 0.0011 0.0011 0.0011 0.0011 0.0011 9.6105e-4 0.0011 0.0011 0.0011 0.0011 0.0011 0.0011 0.0011 0.0011 0.0011;
0.0062 0.0061 0.0061 0.0060 0.0061 0.0060 0.0062 0.0061 0.0061 0.0062 0.0063 0.0062 0.0061 0.0051 0.0051 0.0055 0.0062 0.0062;
1.849e-5 2.3555e-4 7.1714e-4 0.0010 9.6128e-4 1.353e-4 4.1244e-4 1.9515e-4 1.3432e-4 4.9407e-4 1.6306e-4 8.6313e-4 5.9316e-4 3.4377e-4 2.2194e-4 2.8530e-4 8.2608e-4 7.0808e-4;
0.005 0.0035 0.0069 0.006 0.0069 0.0029 0.0055 0.0030 0.0029 0.0055 0.0035 0.0059 0.0044 0.0045 0.0034 0.0032 0.0049 0.0067];
for i=1:18
Cc= N(1,i);
Cf= N(2,i);
Lc= N(3,i);
Lf= N(4,i);
R = 50;
DutyC=0.76;
Vo=500;
s=tf('s');
dp = 1-DutyC;
w1 = -Lc;
w2 = dp*R;
u1 = Lc*Cc*R;
u2 = Lc;
u3 = (dp^2)*R;
x1 = Lf*Cf*(Lc^2)*dp*R*Cc;
x2 = (Lf+Lc*dp*R-(dp^2)*R*Lf*Cf)*Lc*Cc+(Lc^2)*Lf*Cf*dp*R;
x3 = (Lf+Lc*dp*R-(dp^2)*R*Lf*Cf)*Lc+Lf*Cf*Lc*(dp^3)*(R^2);
x4 = (Lf+Lc*dp*R-(dp^2)*R*Lf*Cf)*(dp^2)*R-(dp^2)*R*Lc;
x5 = -(dp^4)*(R^2);
y1 = Lc*Cc*Lf*Cf;
y2 = Lc*Cc + Lc*Lf*Cf;
y3 = Lc+Lf+Lf*Cf*(dp^2)*R;
y4 = R*(dp^2);
Gvd = (Vo*(s*w1 + w2)*((s^4)*x1+(s^3)*x2+(s^2)*x3+s*x4+x5))/(dp*((s^2)*u1+s*u2+u3)*((s^3)*y1+(s^2)*y2+s*y3+y4));
w = logspace(-1,3,100);
H = freqresp(Gvd,w);
objective = -20*log(abs(H));
g = min(objective);
plot(i,g)
end

채택된 답변

Voss
Voss 2023년 1월 8일
You get an empty plot because you are plotting one point at a time (g and i are scalars). A line with one point doesn't show up without a data marker. To get a non-empty plot, use a data marker, or (better) collect the values of g in a vector and plot them together after the loop:
g = zeros(1,18); % pre-allocate vector g
N = [1.551e-5 0.0011 0.0011 0.0011 0.0011 0.0011 0.0011 0.0011 9.6105e-4 0.0011 0.0011 0.0011 0.0011 0.0011 0.0011 0.0011 0.0011 0.0011;
0.0062 0.0061 0.0061 0.0060 0.0061 0.0060 0.0062 0.0061 0.0061 0.0062 0.0063 0.0062 0.0061 0.0051 0.0051 0.0055 0.0062 0.0062;
1.849e-5 2.3555e-4 7.1714e-4 0.0010 9.6128e-4 1.353e-4 4.1244e-4 1.9515e-4 1.3432e-4 4.9407e-4 1.6306e-4 8.6313e-4 5.9316e-4 3.4377e-4 2.2194e-4 2.8530e-4 8.2608e-4 7.0808e-4;
0.005 0.0035 0.0069 0.006 0.0069 0.0029 0.0055 0.0030 0.0029 0.0055 0.0035 0.0059 0.0044 0.0045 0.0034 0.0032 0.0049 0.0067];
for i=1:18
Cc= N(1,i);
Cf= N(2,i);
Lc= N(3,i);
Lf= N(4,i);
R = 50;
DutyC=0.76;
Vo=500;
s=tf('s');
dp = 1-DutyC;
w1 = -Lc;
w2 = dp*R;
u1 = Lc*Cc*R;
u2 = Lc;
u3 = (dp^2)*R;
x1 = Lf*Cf*(Lc^2)*dp*R*Cc;
x2 = (Lf+Lc*dp*R-(dp^2)*R*Lf*Cf)*Lc*Cc+(Lc^2)*Lf*Cf*dp*R;
x3 = (Lf+Lc*dp*R-(dp^2)*R*Lf*Cf)*Lc+Lf*Cf*Lc*(dp^3)*(R^2);
x4 = (Lf+Lc*dp*R-(dp^2)*R*Lf*Cf)*(dp^2)*R-(dp^2)*R*Lc;
x5 = -(dp^4)*(R^2);
y1 = Lc*Cc*Lf*Cf;
y2 = Lc*Cc + Lc*Lf*Cf;
y3 = Lc+Lf+Lf*Cf*(dp^2)*R;
y4 = R*(dp^2);
Gvd = (Vo*(s*w1 + w2)*((s^4)*x1+(s^3)*x2+(s^2)*x3+s*x4+x5))/(dp*((s^2)*u1+s*u2+u3)*((s^3)*y1+(s^2)*y2+s*y3+y4));
w = logspace(-1,3,100);
H = freqresp(Gvd,w);
objective = -20*log(abs(H));
g(i) = min(objective); % store the result as the i-th element of the vector g
% plot(i,g)
end
plot(g) % or plot(1:18,g)
  댓글 수: 2
Salah
Salah 2023년 1월 8일
Thanks a lot Voss, much appreciated.
Voss
Voss 2023년 1월 9일
You're welcome!

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Surface and Mesh Plots에 대해 자세히 알아보기

제품


릴리스

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by