strange quiver3 plot
Afficher commentaires plus anciens
Hello there!
I'm having throuble with a quiver plot. There's this M vector field I want to display over this curved ribbon callend by plotaFita( ) in the code bellow. All vectors should look the same size but it looks a lot bigger in the curve maximum. Any ideias? It's funny because when I put the zero in quiver scale I do got a field with constant norm, but it's completly different, with the arrows all over the origin of the plot.


Omega = @(theta) 2*atan( exp( (theta-theta0)/delta ) );
Mr = @(theta) Ms*sin(fi).*sin(Omega(theta));
Mtheta = @(theta) Ms*cos(Omega(theta));
Mz = @(theta) Ms*cos(fi).*sin(Omega(theta));
Mx = @(theta) Mr(theta).*cos(theta) - Mtheta(theta).*sin(theta) ;
My = @(theta) Mr(theta).*sin(theta) + Mtheta(theta).*cos(theta) ;
XYZ = plotaFita(dr,dz,Raio,Nx,Nz); hold on;
[n,m] = size(XYZ);
X = XYZ(:,1:(m/3)); Y = XYZ(:,(m/3 + 1):(2*m/3)); Z = XYZ(:,(2*m/3+1):end);
Theta = atan(Y./X);
quiver3(X,Y,Z,Mx(Theta),My(Theta),Mz(Theta));
%quiver3(X,Y,Z,Mx(Theta),My(Theta),Mz(Theta),0);
6 commentaires
KSSV
le 16 Août 2022
We cannot run your code as the function: plotaFita is not given here. One suggestion is replace atan with atan2.
Gabriel Silva
le 12 Oct 2022
Gabriel Silva
le 16 Oct 2022
KSSV
le 16 Oct 2022
It is not a complete code. How you expect us to run?
XYZ = plotaFita(dr,dz,Raio,Nx,Nz); hold on;
dr, dz, Raio, Nx, Nz not defined. Okay, we can go ahead with some values. But how about variables in the below lines?
Omega = @(theta) 2*atan( exp( (theta-theta0)/delta ) );
Mr = @(theta) Ms*sin(fi).*sin(Omega(theta));
Mtheta = @(theta) Ms*cos(Omega(theta));
Mz = @(theta) Ms*cos(fi).*sin(Omega(theta));
Gabriel Silva
le 16 Oct 2022
Modifié(e) : Gabriel Silva
le 21 Oct 2022
Gabriel Silva
le 21 Oct 2022
Réponses (0)
Catégories
En savoir plus sur Creating, Deleting, and Querying Graphics Objects dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!