Re: [問題] 迴圈改寫成矩陣已回收
※ 引述《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
討論串 (同標題文章)
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章