problem in plot of given equation
이전 댓글 표시
df=1:300;
nc=1.33;
ns=1.5;
nf=1.59;
theta=10:60
y=zeros(length(theta),length(df))
x=1.5*sind(theta);
l=632.8;
zfc=(l/2*pi)*sqrt(x.^2-nc.^2);
zfs=(l/2*pi)*sqrt(x.^2-ns.^2);
p=1;
de=df+zfc+zfs
y=(nc/x)*((nf^2-x^2)./(nf^2-nc^2))*(zfc/de)*(2*(x/nc)^2-1)^p;
plot(df,y)
iI have problem to plot the graph
댓글 수: 1
M.MUSBA Elhadid
2022년 2월 5일
The sizes of vectors that are input arguments to plot function have to be the same. So you have to check it.
답변 (1개)
Hi Shiv,
The error you are encountering occurs while adding the vectors‘df’,‘zfc’, and‘zfs’, which have different sizes. Specifically, the vector‘df’is of size 1x300, while‘zfc’and‘zfs’are calculated based on the vector‘theta’, which is of a size 1x51. To resolve this issue, you can make vector‘theta’of size 1x300 using MATLAB‘linspace’function.
theta=linspace(10,60,300);
Additionally, when calculating 'y', ensure that you are using element-wise operations to handle each element of the vectors individually. The code given below shows how you can assign values to ‘y’:
y=(nc./x).*((nf^2-x.^2)./(nf^2-nc^2))*(zfc/de).*(2*(x/nc).^2-1).^p;
Please refer to the code snippet given below, to resolve the error.
df = 1:300;
nc = 1.33;
ns = 1.5;
nf = 1.59;
% adjust theta to match the size of df
theta = linspace(10, 60, 300);
x = 1.5 * sind(theta);
l = 632.8;
zfc = (l / (2 * pi)) * sqrt(x.^2 - nc.^2);
zfs = (l / (2 * pi)) * sqrt(x.^2 - ns.^2);
p = 1;
% ensure df, zfc, and zfs are compatible in size
de = df + zfc + zfs;
% using element-wise operations to handle each element of the vectors individually
y = (nc ./ x) .* ((nf^2 - x.^2) ./ (nf^2 - nc^2)) .* (zfc ./ de) .* (2 * (x ./ nc).^2 - 1).^p;
plot(df, y);
For more information on ‘linspace’, please follow the MATLAB documentation for ‘linspace’ function.
Hope this helps.
카테고리
도움말 센터 및 File Exchange에서 MATLAB에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!