MATLAB 板


LINE

I=sparse(eye(6000,6000)); O=[一個3084行*1列的矩陣]; y=O' dt=1; gg=[6.7525 -12 6.2475]; hh=eye(6000); bb=sparse(conv2(hh,gg,'same')); C=[bb]; M = sparse(eye(6000)); H = sparse(zeros(1,6000)); H(1,2300) = 1; Q = sparse(3*eye(6000)); R = 1; x0=[一個6000行*1列的矩陣] %X_saved 用來存放每隔時間點,濾波估計值值 %X_saved 的第i行就是,濾波在時間i分鐘的估計值 %在i分鐘卡爾曼濾波估計值,是一個6000維的行向量 %該向量由上到下,代表河川 100,200,300,...,3600公尺的估計值(透過濾波估計) X_befored = sparse(zeros(6000,N)); X_saved = sparse(zeros(6000,N)); Pk = sparse(eye(6000)); xk = x0; for k=2:N x_kp = A*xk; %公式 1 X_befored(:, k-1) = x_kp; P_kp = A*Pk*A'+ Q; %公式 2 K = (P_kp*H') / (H*P_kp*H'+ R); %公式 3 xk = x_kp + K*(y(k-1)-H*x_kp); %公式 4 %將公式4 計算得到的在k時間的濾波估計值 xk ,存在X_saved的第 k-1 行 X_saved(:, k-1) = xk; Pk = (I - K*H)*P_kp; %公式 5 end %提取濾波估計值中的,第2300列 %2300列,代表在河水2300 公尺處,從0秒~3084秒的染劑濃度估計值 xhat_2300 = X_saved(2300,:); t=1:dt:3084; %一個時間單位為1秒 figure; plot(t,y,t,xhat_2300); title('在河川 2300 公尺處的測量值與濾波估計'); xlabel('時間(每1分)'); ylabel('染劑濃度'); legend('測量值','Kalman estimator'); xlim([0,3500]); %限制x軸畫圖範圍 =========================== 跑下去,跳出這個錯誤。 Error: The temporary variable xk in a parfor is uninitialized. See Parallel for Loops in MATLAB, "Uninitialized Temporaries". 因為對於pardor而言,xk這個變數無法初始化。 我猜測是,PARFOR功能不允許循環體中出現對矩陣的某些部分獨立地計算。 但是因為不太熟悉parfor的並行運算概念,所以改了code幾次,都不對 囧 有高手或熟悉並行計算的朋友路過還請指教。 我剛剛有看一下用gpu來解矩陣的方法, 想說之後用gpu、parfor,運算速度應該會快很多a_a! --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.224.111.120
※ 文章網址: https://webptt.com/m.aspx?n=bbs/MATLAB/M.1530259480.A.581.html
1F:推 sppmg: 沒仔細看隨便回。parfor或是其他平行運算都有一個限制: 06/30 00:33
2F:→ sppmg: 平行部份一定要是獨立的,否則必須等待相依性處理完。 06/30 00:35
3F:→ sppmg: 你的for中xk會隨迴圈變動,並且影響x_kp,因此無法用parfor 06/30 00:36
4F:推 krsoon: 你得迴圈前後iteration有相關,是不能用parfor的 06/30 00:59
哦哦 感謝兩位 我聽別人說可以用矩陣乘法加速計算 我再試試看 ※ 編輯: Ecampus (36.235.47.56), 06/30/2018 01:31:54
5F:→ Ecampus: 那請問公式1~公式5 也更快的寫法嗎@@ 06/30 03:12
6F:→ Ecampus: 我查GOOGLE 他說MATLAB矩陣相乘可以用類似 C=A.*B 06/30 03:13
7F:→ Ecampus: 類似C=A.*B 這種模式....結果 我做起來 發現大大不妥 06/30 03:13
8F:→ Ecampus: 這是另一種東西 所以我看GOOGLE看得有點搞暈= = 06/30 03:14
9F:推 sunev: 不要凡事都用sparse,不稀疏的矩陣硬用只會讓速度變慢 06/30 11:12
瞭解了 剛發現自己犯了您說的錯誤 ※ 編輯: Ecampus (125.224.107.84), 06/30/2018 17:26:15







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Soft_Job站內搜尋

TOP