나는 van Loan의 저서 에서 Matlab 함수를 가지고 있습니다. 과학 계산 소개. 행렬 C를 생성합니다. 여기서 각 행은 모든 요소가 하나씩 오른쪽으로 시프트 된 이전 행입니다. 나는 교대가 오른쪽으로 바뀌기를 바란다. 그러나 나는 논리에 약간의 문제가있다.순환 행렬을 코딩하는 Matlab
특히 오른쪽 시프트의 경우 아래 루프가 의미가 있습니까? 위해
for i=2:n
C(i,:)=[C(i-1, n-2) C(i-1, 1:n-1)];
end
function C= circulantShift(a) %shifts to left
a=[1 2 3 4];
n=length(a);
C=zeros(n,n);
C(1,:)=a;
for i=2:n
C(i, :)=[C(i-1, n) C(i-1, 1:n-1)];
end
"교대가 왼쪽으로 바뀌 었습니까?" 'for' 루프 다음에'wrev (C)'를 시도하십시오. – David
@David가 작동하지 않는다면 wrev도 matlab 함수입니까? – codeAligned
죄송합니다.'wrev'는 벡터를위한 것이고 대신'fliplr'을 시도하십시오. – David