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/cn.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