2017-12-04 1 views
0

반복 행렬을 만들려고합니다. 그리고 하나의 조건은 모든 반복 단계마다 요소가 증가한다는 것입니다.루프없이 번호가 증가하는 반복 행렬을 만드는 방법

예를 들어 을 으로 설정하면 [a b a+D b+D a+2D b+2D a+3D b+3D][a b a b a+C b+C a+C b+C]과 같은 여러 배열을 만들고 싶습니다. (CD은 일정합니다.)

for 루프를 제거하는 것이 필수적이므로 특별한 기능 (예 : repmat)이 있거나 이러한 종류의 행렬을 만드는 트릭이 있습니까? 다음과 같이 repmatreshape의 조합을 사용하여

답변

4

, 당신은 그것을 얻을 수 있습니다

A = [1 2]; 
n = 5; 
D = 10; 
B = reshape(repmat(A(:), 1, n) + D*(0:(n-1)), 1, []) 

사전 2016b (암시 적 확장을 허용하지 않습니다)

B = reshape(bsxfun(@plus, repmat(A(:), 1, n), D*(0:(n-1))), 1, []) 
관련 문제