Effacer les filtres
Effacer les filtres

Error using imag: too many input arguments

1 vue (au cours des 30 derniers jours)
Sergio Manzetti
Sergio Manzetti le 22 Juin 2021
Commenté : Sergio Manzetti le 22 Juin 2021
Hi, I get the given error when trying to plot the contour of the given function
syms r x y k z
[ph,r] = meshgrid((0:5:360)*pi/180,0:.5:10);
[X,Y] = pol2cart(ph,r);
Z = X+i*Y;
J = besselj(k,l.*r);
J2 = besselj(k,m.*r);
Y = bessely(k,l.*r);
Y2 = bessely(k,m.*r);
H = besselh(k,r);
F1 = symsum((J).*exp(1i*k*ph),k,-5,5);
F2 = symsum((J2+Y2).*exp(1i.*k.*ph),k,-5,5);
F3 = symsum(H.*exp(1i.*k.*ph),k,-5,5);
pwu = nan(size(F1), 'like', F1);
mask = 0 <= r & r < 0.5;
pwu(mask) = F1(mask);
mask = 0.5 <= r & r < 1;
pwu(mask) = F2(mask);
mask = r >= 1;
pwu(mask) = F3(mask);
U = subs(pwu, {l, m}, {1.5, 3});hold on
contour(X,Y,imag(double(U),30))
axis equal
xlabel('r','FontSize',14);
ylabel('phi','FontSize',14);
The error lies in the 4th last line, however it appears to me as OK. What is wrong here?
thanks!

Réponse acceptée

Walter Roberson
Walter Roberson le 22 Juin 2021
Modifié(e) : Walter Roberson le 22 Juin 2021
Count the bracket level!
contour(X,Y,imag(double(U),30))
1 2 3 2 10
Notice that the ,30 is at nesting level 2 -- inside the imag() call.
  7 commentaires
Walter Roberson
Walter Roberson le 22 Juin 2021
My code had
[x, y] = pol2cart(ph,r);
Z = x + 1i*y;
Your code has
[X,Y] = pol2cart(ph,r);
Z = X+i*Y;
Notice y compared to Y . This is important because you have
Y = bessely(k,l.*r);
which assigns a symbolic result to Y, and then later when you want to
contour(X,Y,imag(double(U)),30)
then you are using the symbolic Y, not the numeric Y.
You should have just taken my code and changed
surf(x, y, real(double(U)))
hold on
surf(x, y, zeros(size(x)))
hold off
to
contour(x, y, imag(double(U)), 30);
Sergio Manzetti
Sergio Manzetti le 22 Juin 2021
Thanks Water. I will do this immediately!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Denoising and Compression dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by