Re: [問題] index插入問題已回收

看板MATLAB作者 (大長今)時間14年前 (2010/05/04 12:03), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串4/4 (看更多)
※ 引述《DigiPrince (幻無影)》之銘言: : ※ 引述《biglongtoday (大長今)》之銘言: : : X=randint(1,11,[0 20]) % X:原本資料 : : t=length(X); : : index=reshape(kron(buffer(1:4*ceil(t/4),3,-1),ones(1,2)),1,[]); : : index(6:6:end)=index(3:6:end)+1; : : index(t+2*fix((t-3)/3)+1:end)=[]; : : X(index) : 這裡假設你的資料長度是 4 的倍數的情況,若有不足請自行修改程式碼或補零。 : X = 1:20; % original data : Y = reshape(X, 4, []); : Y = [Y([1 2 3], :); Y([1 2 4], :)]; : Y = reshape(Y, 1, []); % processed data X = 1:5 % original data Z = zeros(1,4*ceil(length(X)/4)); %補0變成長度為4的倍數 Z(1:length(X))=X; Y = reshape(Z, 4, []); Y = [Y([1 2 3], :); Y([1 2 4], :)]; Y = reshape(Y, 1, []); Y(1:length(X)+2*fix((length(X))/4)) % 長度為n的資料輸出後長度=n+2*[n/4] 這樣就一般化了! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.228.25.18
文章代碼(AID): #1BtvnszK (MATLAB)
文章代碼(AID): #1BtvnszK (MATLAB)