how to combine two plots in one figure

조회 수: 3 (최근 30일)
Jamie Al
Jamie Al 2021년 2월 9일
편집: Jamie Al 2021년 2월 10일
I have the following code and would like to plot the motion of a particle under the influence of magnetic field with two intensity It should look something like this:
But for some reason my code doesn't show the right sizes:
dt = 1e-2; % time step
mass = 1.0; % mass of particle
charge = 1.0; % charge of particle
n = 500; % number of time steps
%Initial parameters:
v = [0, 1, 0]; % initial velocity
x = [0, 0, 0]; % initial position
B1 = [0, 0, 10];%B = [0, 0, 10]; initial mag. field along z directions
B2 = [0, 0, 2];
E = [0, 0, 0]; % initial E field, for case 1) E = 0 and B =/ 0
X = zeros(n,3); % initialize an array of zeros with size nx3 for positions
V = zeros(n,3);
X1 = zeros(n,3); % initialize an array of zeros with size nx3 for positions
V1 = zeros(n,3);
X2 = zeros(n,3); % initialize an array of zeros with size nx3 for positions
V2 = zeros(n,3);
for time = 1:1:n
[x1,v] = boris_rotation(x,v,charge,mass,dt,B1,E);
[x2,v2] = boris_rotation(x,v,charge,mass,dt,B2,E);
X1(time,:) = x1;
V1(time,:) = v;
X2(time,:) = x2;
V2(time,:) = v2;
end
figure;
plot(X1(:,1),X2(:,2),'k','Linewidth',2);
grid on
hold on
plot(X2(:,1),X1(:,2),'r','Linewidth',2);
I am getting this:

채택된 답변

Jakob B. Nielsen
Jakob B. Nielsen 2021년 2월 10일
편집: Jakob B. Nielsen 2021년 2월 10일
In your code, you input the initial x and v during every loop iteration - not the most recent x and v. That is why you just get two circles on top of each other.
This small change gives me a figure that looks, not quite like the first one you posted, but a whole lot closer, and you can work from there :)
x1=x; %initial positions 'zeroed'
x2=x;
for time = 1:1:n
[x1,v] = boris_rotation(x1,v,charge,mass,dt,B1,E); %input x1 instead of x
[x2,v2] = boris_rotation(x2,v2,charge,mass,dt,B2,E); %input x2 instead of x, and also v2 instead of v
X1(time,:) = x1;
V1(time,:) = v;
X2(time,:) = x2;
V2(time,:) = v2;
end

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 MATLAB에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by