[討論] 用for loop將陣列數值重新排列

看板MATLAB作者 (( ・ω・`))時間6年前 (2018/08/20 18:33), 6年前編輯推噓4(4012)
留言16則, 6人參與, 6年前最新討論串1/1
想問一下版上的大大們 目前我有一個實驗64筆數據是給16個感測器變化數值 每一個感測器會有獲得4筆資料 但是目前我手邊的是一個excel所獲得的1*64 array數值 請問一下要如何用matlab中的for loop將該陣列1*64 轉為 16*4 呢? 再者如果我資料是16的倍數 數量的話 是否用取餘數的概念處理不會發生錯誤呢 謝謝 示意圖: https://i.imgur.com/F9tIpn1.jpg
謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 27.247.225.83 ※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1534761220.A.E95.html

08/20 19:45, 6年前 , 1F
查一下有關matrix operation的內容 有個fn就是你要的
08/20 19:45, 1F

08/20 19:45, 6年前 , 2F
一時記不起來
08/20 19:45, 2F
※ 編輯: amateuruser (27.247.225.83), 08/20/2018 20:12:10 ※ 編輯: amateuruser (27.247.225.83), 08/20/2018 20:13:17

08/20 21:28, 6年前 , 3F
reshape?
08/20 21:28, 3F
感謝L大 Y大回覆 目前還在研究看看 抱歉 可能沒有講清楚 因為我目前所獲得的數據為1X64 一個直行的數據 但因為我每16個數 ※ 編輯: amateuruser (27.247.225.83), 08/20/2018 22:44:34

08/20 22:41, 6年前 , 4F
a=1:64.'; b=zeros(16,4); b(:)=a(:); b=b.';
08/20 22:41, 4F

08/20 22:41, 6年前 , 5F
不用reshape就這樣XD
08/20 22:41, 5F
P大 我研究一下 因為一開始我一直想著 C++語法 需要巢狀迴圈才能將每一筆資料存在loop ※ 編輯: amateuruser (27.247.225.83), 08/20/2018 22:47:40 想請教一下P大 因為小弟為新手 想問一下這語法屬於哪一個部分 我去查閱一下 感謝 ※ 編輯: amateuruser (27.247.225.83), 08/20/2018 22:50:20

08/20 23:27, 6年前 , 6F
p大是利用 ind2sub()的概念?
08/20 23:27, 6F

08/21 11:25, 6年前 , 7F
其實reshape 是最快的 a=[64x1]; b= reshape(a,16,4)'
08/21 11:25, 7F

08/21 14:44, 6年前 , 8F
其實這樣就可以了 b= reshape(a,16,[])'
08/21 14:44, 8F

08/21 14:45, 6年前 , 9F
reshape就是你給他其他dimension 剩下一個他自己會除
08/21 14:45, 9F

08/21 14:46, 6年前 , 10F
我上面的寫法就是 Matlab的2維陣列其實也有個1維編號 也
08/21 14:46, 10F

08/21 14:47, 6年前 , 11F
就是M(1,1), M(2,1), M(3,1)這樣算下去
08/21 14:47, 11F

08/21 14:47, 6年前 , 12F
b(:)=a(:)這樣就是讓b(1,1)=a(1); b(2,1)=a(2).....
08/21 14:47, 12F

08/21 14:48, 6年前 , 13F
b(1,2)=a(17); ...... b(16,4)=a(64);
08/21 14:48, 13F

08/21 14:49, 6年前 , 14F
注:Matlab陣列的這個編號跟C++的2D陣列是相反的 C++是先
08/21 14:49, 14F

08/21 14:50, 6年前 , 15F
算列再算行: M(1,1), M(1,2), M(1,3)...M(2,1), M(2,2)
08/21 14:50, 15F
感謝 P大 我研究一下 matlab真的減少很多要用C思考的結構 ※ 編輯: amateuruser (27.247.228.177), 08/21/2018 18:23:36

08/22 23:25, 6年前 , 16F
用n除16後的商跟餘數決定行列位置
08/22 23:25, 16F
文章代碼(AID): #1RUfa4wL (MATLAB)
文章代碼(AID): #1RUfa4wL (MATLAB)