[問題] inline的執行速度已回收

看板MATLAB作者 (bummed out)時間14年前 (2011/05/03 00:18), 編輯推噓4(405)
留言9則, 3人參與, 最新討論串1/1
我使用symbolic toolbox求得函式的微分後 再用inline製作微分的函式,例如 y = p(a,b,c1,c2,c3),不同情境有不同的p。 但我需要執行大量的迴圈(此函數已經向量化,a是向量,其它是單值), 用這條函數求值時, profile顯示此函數拖慢了整個程式... 1. 請問是否有任何方法,可加速此函數的執行速度呢? 2. 請問是否有聰明的方法,可以一次丟入c1,c2,c3呢?(不同情境有不同數量的c) thanks -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 119.237.198.116

05/03 00:31, , 1F
你的f是什麼
05/03 00:31, 1F

05/03 00:39, , 2F
嗯...應該是只有 y。我修改一下
05/03 00:39, 2F
※ 編輯: genwei 來自: 119.237.198.116 (05/03 00:40)

05/03 08:34, , 3F
1. 把inline改成匿名函數y=@(a,b,c1,c2,c3)...
05/03 08:34, 3F

05/03 08:36, , 4F
2. 把c存成c=[c1;c2;c3;...] 丟進函數再判斷長度
05/03 08:36, 4F

05/04 10:32, , 5F
2. 不知在匿名函數裡,如何讓它判斷輸入元素的多寡 thanks
05/04 10:32, 5F

05/04 20:13, , 6F
請問你的y長什麼樣子 太複雜的話我講的好像行不通
05/04 20:13, 6F

05/04 20:23, , 7F
頗複雜。但不知是否可將這串a,b,c1,c2,c3變成可適性輸入?
05/04 20:23, 7F

05/04 20:24, , 8F
有時只有a,b,c1;有時a,b,c1,c2,或a,b,c1,c2,c3
05/04 20:24, 8F

05/04 21:17, , 9F
那可能還是另外把y寫成function比較容易處理
05/04 21:17, 9F
文章代碼(AID): #1DljawFZ (MATLAB)