I need help with using the If-Else loop containing scalar and nonscalar

5 次查看(过去 30 天)
Create a plot of iD as a function of vDS from 0 ≤ vDS ≤ 8 V, for three values of vGS =2, 3, and 4 V.
Constants: Kn=0.2 mA/V2; VTN =1.2 V; λ=0.01 V-1.
Here is my work I have so far:
Vds = 0:0.1:8;
Vgs = 2:1:4;
kn = 0.2;
Vtn = 1.2;
lambda = 0.01;
Vds_Sat = Vgs - Vtn;
if (Vds <= Vds_Sat)
ID = Kn*(2*(Vgs-Vtn)*Vds - (Vds^2));
else (Vds >= Vds_Sat)
ID = Kn*((Vgs - Vtn)^2*(1 + lambda * Vds));
end
plot(Vds.,ID)
It is telling me I have an error on line 7 and that my matrix dimension must agree, could you please help me with this?
  1 个评论
Walter Roberson
Walter Roberson 2013-1-22
There is no such thing as an "If loop". There is an "if statement". Loops execute the body multiple times; statements execute the body (or not) exactly one time.

请先登录,再进行评论。

回答(1 个)

Matt J
Matt J 2013-1-21
This operation
Vds <= Vds_Sat
does not make sense since the left and right hand side are vectors of different sizes.
  9 个评论
Steven
Steven 2013-1-21
I got the plot to work but it only plots the case when Vgs = 4. How can I obtain the plots when Vgs = 2 & 3?

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Labels and Annotations 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by