strange quiver3 plot
Mostra commenti meno recenti
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 Commenti
KSSV
il 16 Ago 2022
We cannot run your code as the function: plotaFita is not given here. One suggestion is replace atan with atan2.
Gabriel Silva
il 12 Ott 2022
Gabriel Silva
il 16 Ott 2022
KSSV
il 16 Ott 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
il 16 Ott 2022
Modificato: Gabriel Silva
il 21 Ott 2022
Gabriel Silva
il 21 Ott 2022
Risposte (0)
Categorie
Scopri di più su Creating, Deleting, and Querying Graphics Objects in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!