看板 MATLAB 關於我們 聯絡資訊
小弟菜鳥想請問各位大大 現在有一個1*60000的矩陣 想要每次取樣2個點並在2點之間插入0 我試著用迴圈但沒有成功 請問迴圈該用什麼方法 或是有其他的方式 感謝各位大大 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.235.245.117 ※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1513995106.A.EFF.html
LiamIssac: 先看看加入0之後 向量的總長度多少(假設n) 然後建立一 12/23 11:12
LiamIssac: 個n的0向量 然後把原本的按位置丟進去 12/23 11:12
LiamIssac: 丟進去那步 可以用簡單迴圈 或是你可以試試看arrayfun 12/23 11:14
LiamIssac: 或是bsxfun之類的函數 12/23 11:14
fkpanda: 我就是卡在迴圈那個步驟 我的想法是用 n=1 12/23 13:19
fkpanda: For I=1:90000 12/23 13:20
fkpanda: y(1,i+n+1)=y(1,i+n) 12/23 13:22
fkpanda: 可是好像不能這樣用 12/23 13:26
ejialan: 設原矩陣A, B=reshape(A,2,30000); 12/23 14:13
ejialan: C=[B(:,1);zeros(1,30000);B(:,2)];D=reshape(C,1,90000) 12/23 14:14
ejialan: C打錯 C=[B(1,:);zeros(1,30000);B(2,:)]; 12/23 14:16
profyang: B=[A;zeros(size(A))]; C=B(1:end-1).'; 你是要這樣嗎? 12/23 14:24
profyang: 兩兩之間插入0 最後C總共長度是2*60000-1 12/23 14:24
profyang: 阿 上面用C=B(1:end-1)就好了 不用.' 12/23 14:25
ejialan: 我本來覺得是樓上那樣 但看原po推文的90000我猜是我那樣 12/23 14:30
fkpanda: 抱歉表達有點不清楚 意思是 假設原本元素是123456 12/23 16:15
fkpanda: 改成102304506 12/23 16:15
fkpanda: 謝謝各位 我晚上回去試試 12/23 16:15
profyang: 那就是ejialan大的才對 12/23 18:02
fkpanda: 已解決謝謝各位 12/24 18:20