XMIN must be a floating point scalar. Kindly help me in clearing the error.
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
CODE:
%all variables are declared
Mt1=0
for ai=a-2*(N-1)*wd-2*(N-1)*s:2*(wd+s):a-2*(N-N)*wd-2*(N-N)*s
for aj=a-2*(N-1)*wd-2*(N-1)*s:2*(wd+s):a-2*(N-N)*wd-2*(N-N)*s
k=(sqrt((4*ai*row)/((row.^2)+(d.^2)+(ai.^2)+(2*ai*row))))
Bz=@(y,x)(((u0./(2.*pi))*(1./((sqrt((row+ai)).^2+(d.^2)))).*(ellipticK(k)+(((ai.^2)-(row.^2)-(d.^2))./(((row-ai).^2)+(d.^2))).*ellipticE(k))))
yl=@(x) sqrt(aj^2-x^2)
M=integral2(Bz(x,y),-yl(x), yl(x), -aj, aj)
Mt1=Mt1+M
hold on
end
end
ERROR:
XMIN must be a floating point scalar.
XMIN must be a floating point scalar.
Error in FPSSCFINAL10Sep192 (line 108)
M=integral2(Bz(x,y),-yl(x), yl(x), -aj, aj)
2 Kommentare
Antworten (1)
Steven Lord
am 10 Okt. 2019
Bz=@(y,x) <lengthy expression that doesn't depend on x OR y snipped>
yl=@(x) sqrt(aj^2-x^2)
M=integral2(Bz(x,y),-yl(x), yl(x), -aj, aj)
You're trying to evaluate the anonymous functions Bz and yl at some point or points and passing the numbers that are the results of those evaluations into integral2. Instead you're going to need to pass the anonymous functions themselves into integral2. That way integral2 can evaluate your functions at points of its choosing, not ones you've chosen for it.
Bz=@(y,x) <lengthy expression that doesn't depend on x OR y snipped>
yl=@(x) sqrt(aj^2-x^2);
minusyl = @(x) -yl(x);
M=integral2(Bz, minusyl, yl, -aj, aj)
Note too that integral2 is going to call your function with x and y coordinates, not y and x, so you'll need to either swap the order of inputs to Bz or add an adapter, much like I did to compute -yl(x), and pass the adapter in.
One additional flag, now that I go back and check: your Bz function doesn't actually depend on x or y. So effectively you're integrating a constant. If that's not your intention, you probably want to reexamine your derivation or original problem statement of Bz to determine how it should depend on x and/or y.
0 Kommentare
Siehe auch
Kategorien
Mehr zu Function Creation 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!