strange quiver3 plot
Ältere Kommentare anzeigen
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 Kommentare
KSSV
am 16 Aug. 2022
We cannot run your code as the function: plotaFita is not given here. One suggestion is replace atan with atan2.
Gabriel Silva
am 12 Okt. 2022
Gabriel Silva
am 16 Okt. 2022
KSSV
am 16 Okt. 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
am 16 Okt. 2022
Bearbeitet: Gabriel Silva
am 21 Okt. 2022
Gabriel Silva
am 21 Okt. 2022
Antworten (0)
Kategorien
Mehr zu Creating, Deleting, and Querying Graphics Objects finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!