0
기본적으로 특정 값을 삭제하고 다른 셀을 셀 셀에 유지하는 문제가 있습니다.조건부 루프 셀 내용 값 필터링
나는 distance라는 셀을 생성 한 다음 "blockade and blockadeouter"라는 두 가지 기준에 따라 값을 필터링하려고합니다. 나는 거리 셀의 초기 셀을 비워 둘 수는 없지만 더 중요한 것은 필터링이 거리 셀에 머문 특정 범위를 벗어난 값을 보았다는 의미에서 작동하지 않는다는 것입니다.
범위 속성을 만족하는 거리에 대해 xinit, yinit, zinit 좌표를 저장하고이 좌표를 posx, posy, posz에 저장하려고합니다.
나는 실수를하고있다. 모든 도움을 환영합니다.
감사
kb = 1.38065*10^(-23) ; %Boltzmann Constant
amu = 1.660539040*10^-27; % atomic mass unit
mRb= 85;%mass of Rubidium 85
c = 299792458; % speed of light
e=1.6021892*10^-19;%electron unit charge
epsilon0 = 8.854 * 10^-12;
%=============Minimum Allowable Distance/Blockade Radius=====================
a = 12.8*10^-6;
blockade =14*10^-6;%lower limit for filtering
blockadeouter = blockade + a;%upper limit for filtering
sigmax = 40;
sigmay = 40;
sigmaz = 0;
%==================Number of Scan Steps====================================
npics =50; %number of iterations
%=============Number of initial particles in the excitation volume in the MOT Stage===================
numberofparticles =100;
%=============Creating a cell system for importing GPT Data into===========
distances = cell(npics,1);%Collecting all distances between particles
posx = cell(npics,1);
posy = cell(npics,1);
posz = cell(npics,1);
for n = 1 : 1 : npics
fprintf('%d ',n);
%Declaration of orgin for simulation
mux = 0; muy = 0; muz =0;
%Creating a x,y,z coordinate system for the ion
xinit = normrnd(mux,sigmax*10^-6,[1 numberofparticles]);
yinit = normrnd(muy,sigmay*10^-6,[1 numberofparticles]);
zinit = normrnd(muz,sigmaz*10^-6,[1 numberofparticles]);
for ii = 1 : 1 : numberofparticles
for jj = ii+1 : 1 : numberofparticles
distances{ii}{jj} = sqrt((xinit(ii) - xinit(jj)).^2 + (yinit(ii) - yinit(jj)).^2 + (zinit(ii) - zinit(jj)).^2);
if (distances{ii}{jj} >= blockade) && (distances{ii}{jj} <= blockadeouter)
posx{n}{jj} = xinit(jj);
posy{n}{jj} = yinit(jj);
posz{n}{jj} = 0;
end
end
end
end % end of npics loop
figure
for ii = 1:1:length(distances)
trial{ii} = cell2mat(distances{ii,1}(1,:));
end
trial = cell2mat(trial);
grid on;
title('Filtered Distances')
hist(trial)
보다는 세포 배열 어려움을 겪고 일반적인 2 차원 숫자 배열을 사용하지 않고 NaN을 사용하여 누락 된 데이터를 나타낼 수 있습니다 (이전에 빈 [] 배열을 사용했던 곳). 예 : 'distance = NaN (npics, numberofparticles);와 같은 것을 초기화하고'posx','posy'와'posz'에 대해'distance (ii, jj) = ...'와 비슷하게 사용하십시오. – Justin