Re: [問題] 如何設定批次迴圈的次數已回收

看板MATLAB作者 (鈴弓)時間14年前 (2011/07/11 14:58), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串5/5 (看更多)
※ 引述《susuyumi (鈴弓)》之銘言: 測試完成,自問自答;底下附上解決的code: (在此感謝diggershi版友一句話的提醒解答) (丟出這個蠢問題來真不好意思>"< 寫code的時候是凌晨,腦筋不清楚orz) 轉換數列二維的 s <10000x30 double>,轉成三維的 ss <50x30x200 double>: %====這個是資料示意====% ss(:,:,1) = s(1:50,:); ss(:,:,2) = s(51:100,:); . . . ss(:,:,200) = s(9951:10000,:); %======================% 為達成這個目的,先製作了一筆每隔50就增加一次的次數累進表: %====這個是嘗試撰寫的code====% temp_d=ones(200,1); temp_length=ones(200,1); for i = 1:200; temp_length(i,:)=50*i*temp_d(i,:); end %============================% %====運算的主程式====% tic; %記時開始 ss(:,:,1) = s(1:50,:); %預先寫好前面一個矩陣資料 for k = 2:200; for j = 1:200-1; ss(:,:,k) = s((temp_length(j)+1:temp_length(j+1)),:); end end toc; %記時中止,輸出總運算所需時間 Elapsed time is 1.401417 seconds. -- ※ 發信站: 批踢踢實業坊(ptt.cc)

07/11 14:26,
最後一個i迴圈 有要做什摸事嗎? 沒的話 可以拿掉...
07/11 14:26

07/11 14:27,
有的話 在看看作啥可以縮短時間吧...
07/11 14:27

07/11 14:52,
抓出問題了!感謝diggershi版友的提示
07/11 14:52
-- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.123.213.195

07/11 15:53, , 1F
試試 reshape() permute() 應該連迴圈都不用寫
07/11 15:53, 1F
文章代碼(AID): #1E6fxzJh (MATLAB)
討論串 (同標題文章)
文章代碼(AID): #1E6fxzJh (MATLAB)