Re: [問題] 迴圈改寫成矩陣已回收

看板MATLAB作者 (Veritas)時間16年前 (2008/10/12 06:40), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《yinson (大隱於市 ._.)》之銘言: : 我想將類似這樣的迴圈改寫成矩陣, 不然程式碼很冗長 >"< : (已經簡化過了,不然更冗長......... ( ̄▽ ̄#)﹏﹏) : n=100; : for i = 1:(n-10) : a(i+5) = (b(i)+b(i+1)+b(i+2)+......+b(i+10))/10 : end : 我是改成這樣,不過答案是錯的 >"<a : n = 100; : i = 1:(n-10); ^^^^^^^^^^^^ i是向量 : a(i+5) = sum(b(i:(i+10)))/10; ^^^^^^^^ 向量:向量 是什麼東西? 應該不是你要的吧 : end : 看跑出來的東西,是迴圈根本就沒跑 Orz.... : 請問該怎麼改寫才對?一直寫不出來...三點了........ ~"~a : 先感謝各路高手 <(_ _)> 在原來的迴圈裡 每跑一次就生成一個向量再取和 若要去迴圈 就一口氣生成 n-10個向量 也就是生成 n-10 * 11的矩陣 再對第二個dimension取和 剩下的問題就變成如何一口氣生成這矩陣了 ind = repmat(1:11,n-10,1); ind = ind + repmat(0:n-9',1,11); a(6:n+5) = sum(reshape(b(ind(:)),n-10,11),2)/10; -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.195.202.4

10/12 15:47, , 1F
!!! 感謝指正觀念,我在試試看
10/12 15:47, 1F
文章代碼(AID): #18yIjUZz (MATLAB)
討論串 (同標題文章)
文章代碼(AID): #18yIjUZz (MATLAB)