作者perrywu (無尾熊寶寶)
看板MATLAB
標題[其他] 想請問一下多筆資料polyfit的寫法
時間Wed Apr 29 19:12:14 2015
各位先進好
小弟是matlab新手
現在有多筆資料需要做polyfit
例:現在有三個matrix(稱A,B,C)大小一樣 分別存放Data
A=[a11 a12...a1n; B=[b11 b12...b1n; C=[c11 c12...c1n;
a21 a22...a2n; b21 b22...b2n; c21 c22...c2n;
.............; .............; ..............;
am1 am2...amn]; bm1 bm2...bmn]; cm1 cm2...cmn];
現在要求出各自matrix 點對點的斜率
所以小弟的寫法是這樣
for x=1:m,
for y=1:n,
a=polyfit([1 5 10],[A(x,y) B(x,y) C(x,y)],1);
Data(x,y)=a(1);
end
end
因為實際上m和n的大小有點大 所以在這樣跑回圈算結果的時候
需要花真的非常久的時間
所以小弟想請問各位先進
有沒有比較不一樣的寫法可以較快速地完成小弟想做的事
真的很謝謝各位大大!!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.116.82.90
※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1430305936.A.344.html
※ 編輯: perrywu (140.116.82.90), 04/29/2015 19:14:05
推 sunev: 三個點做linear fitting應該有簡單公式解 04/29 22:13
推 sunev: Data=(13*A+B-14*C)/122; 04/29 22:16
→ perrywu: 想請問大大上面那個式子是怎麼推導的!謝謝 04/29 22:22
→ perrywu: 很感謝大大 04/30 21:27
→ perrywu: 大大你好 有發現一個問題實際上我去做fitting時是拿兩筆 05/01 14:06
→ perrywu: 再與原點fiting 所以實際上x=[0 6 12] y=[0 A B]這樣帶入 05/01 14:08
→ perrywu: 簡單公式解會發現最後斜率只有 data=B/12; 只受B影響 05/01 14:10
→ perrywu: 但實際上做polyfit會發現做出來的斜率是會受到0和A的影響 05/01 14:11
→ perrywu: 所以勢必可能還是會須 要用polyfit?還想請問各位先進是否 05/01 14:11
→ perrywu: 有其他的方法?非常感謝 05/01 14:12
→ perrywu: SORRY!好像是自己的誤解~小弟在測試看看 謝謝!不好意思 05/01 14:17
→ perrywu: 小弟弄錯公式了!抱歉 05/01 14:17