2
A가 하우스 ID를 나타내는 행의 첫 번째 요소와 두 번째 열의 집에있는 샘플을 나타내는 집계의 샘플을 나타내는 데이터 매트릭스라고 가정합니다.matlab에서 행의 조건부 중복
A = [100 1 56;
101 1 34;
101 2 33;
102 1 22;
102 2 55;
102 3 2]
w = [3 2 1] % weight of each household to generate the synthetic population
내 outuput은 다음과 같습니다되도록 합성 인구를 만들기 위해 샘플을 확장하고자하는
: 나는 주어진에 대한 행렬의 모든 행을 반복하려면 다음 코드를 사용했다
100 1 56
100 1 56
100 1 56
101 1 34
101 2 33
101 1 34
101 2 33
102 1 22
102 2 55
102 3 2
가중치
그러나 원하는 출력의 경우 일련의 행을 반복해야합니다. 행 집합의 길이는 세대 구성원 수 (w와 같은 별도의 행렬 일 수 있음)에 따라 다르며 각 집합을 반복 할 횟수는 가중치 행렬에 의해 지정됩니다.
코드 수정에 도움이 될 것입니다! 이것은 매우 효율적이지 않습니다,하지만 당신은 당신이 매우 자주 이런 식으로 복제 할 필요가 매우 큰 데이터 세트가있는 경우 그에만 문제가 될 것
ids = unique(A(:,1));
B = [];
for ii = 1:numel(ids)
B = [B; repmat(A(A(:,1)==ids(ii),:), w(ii),1)]; %#ok
end
참고 :