我有這個Matlab函數來自van Loan的書科學計算導論。 它產生一個矩陣C,其中每行是前一行,每個元素右移一位。我想修改它,以便轉移到右側,但我在邏輯上遇到了一些麻煩。循環矩陣的Matlab編碼
特別是,下面的循環對右移是否有意義? circulantShift(a)
轉移功能的權利,而不是左:
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無法得到這個工作,甚至是一個matlab函數? – codeAligned
對不起,'wrev'是矢量,請嘗試'fliplr'來代替。 – David