I have the following code. The code works for me now and it provides a 2D plot, however I am trying to plot a 3D plot. So an example would be like this:
Do you have sugesstions to do this in MATLAB? Thanks
Code:
%Start setting up constants
% Compute the cyclotron frequency and radius (Larmor radius)
omega = (charge .*B(3)) ./mass;
rL = v(2) ./omega; % try v(2) as well since initial v is the perp velocity to B
X = zeros(n,3); % initialize an array of zeros with size nx3 for positions
for time = 1:1:n
%compute the t vector
%compute the s vector
% start the Boris algorithm:
% First half E acceleration: generally for E =/0 ande B =/0
% First half B rotation
% Second hald B rotation
% Second half E acceleration
% Finally update position
end
% plotting
figure;
plot(X(:,1),X(:,2),'k','Linewidth',2); hold on;
set(gca,'TickLabelInterpreter','Latex','Fontsize',14)
ylabel('$ y / d_{\rm p} $','Interpreter','Latex','Fontsize',14);
xlabel('$ x / d_{\rm p} $','Interpreter','Latex','Fontsize',14);

 채택된 답변

David Goodmanson
David Goodmanson 2021년 2월 3일
편집: David Goodmanson 2021년 2월 3일

0 개 추천

Hi Lujain,
After setting v = [0 1 1] to provide some initial z velocity,
figure(2)
plot3(X(:,1),X(:,2),X(:,3))
grid on
and note that if you put the mouse cursor inside the window and click on the symbol with the circle enclosing the cube, you can rotate the plot with a click-hold mouse.

댓글 수: 1

Jamie Al
Jamie Al 2021년 2월 3일
Hello David!
Thanks a lot, this does work!

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Vector Fields에 대해 자세히 알아보기

질문:

2021년 2월 3일

편집:

2022년 1월 19일

Community Treasure Hunt

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

Start Hunting!

Translated by