MATLAB 배열이 있고 배열 요소의 수를 기반으로 반복을 만들고 싶습니다. 다음은 내가 원하는 예입니다.MATLAB 배열 요소 반복
a = [2, 4, 6, 8]
나는 7 개 요소를 원하는 경우, 결과는
aa = [2, 4, 6, 8, 2, 4, 6]
입니다 아니면 5 개 요소를 원하는 경우
aa = [2, 4, 6, 8, 2]
은 결과의 이러한 종류를 만드는 어떤 MATLAB 기능이 있습니까?
MATLAB 배열이 있고 배열 요소의 수를 기반으로 반복을 만들고 싶습니다. 다음은 내가 원하는 예입니다.MATLAB 배열 요소 반복
a = [2, 4, 6, 8]
나는 7 개 요소를 원하는 경우, 결과는
aa = [2, 4, 6, 8, 2, 4, 6]
입니다 아니면 5 개 요소를 원하는 경우
aa = [2, 4, 6, 8, 2]
은 결과의 이러한 종류를 만드는 어떤 MATLAB 기능이 있습니까?
하나의 간단한 옵션은 그것을 위해 임시 변수를 사용하는 것입니다 :
a = [2 4 6 8];
k = 7;
tmp = repmat(a,1,ceil(k/numel(a)));
aa = tmp(1:k)
첫째, 당신은 k
보다 결과를 더 만드는 작은 정수를 사용하여 벡터를 반복 한 다음 당신은 여분의 요소를 제거합니다.
당신은 여러 번 당신이 것을 할 수있는 작은 도우미 기능을 쓸 수 있도록 할 경우
function out = semi_repmat(arr,k)
tmp = repmat(arr,1,ceil(k/numel(arr)));
out = tmp(1:k);
end
예. 귀하의 의견으로, 나는 (바닥 함수와) 가장 작은 정수를 사용하여 벡터를 반복하고 크기를 줄일 수 있습니다. 코멘트 주셔서 감사합니다! –
당신은 "모듈 색인"을 사용할 수 있습니다
a = [2, 4, 6, 8]; % data vector
n = 7; % desired number of elements
aa = a(mod(0:n-1, numel(a))+1);
는 [repmat]를 살펴 보자를 (https://ch.mathworks.com/help/matlab/ref/repmat.html) 기능. 나는 잘 모르지만 그것은 당신을 도울 수 있습니다. :) –
@ V.L. 코멘트 주셔서 감사합니다! 방금 repmat를 확인했지만 반복의 정수 시간 만 사용할 수있는 것처럼 보입니다. –