[討論] 將Cell中的函數相乘?

看板MATLAB作者 (薛丁格的貓)時間10年前 (2015/03/04 02:52), 編輯推噓2(205)
留言7則, 2人參與, 最新討論串1/1
大家好, 我目前的狀況是我有創造了一個cell,裡面的每個元素都是函數 @(x)f(x) 的形式 在運算的最後,我需要將此cell每一列的函數相乘,得到一個新函數g(x)再運算 就我所知,MATLAB是不支援f1(x)*f2(x)=f3(x),必須在宣告時直接定義好 但是我的cell是經過滿複雜的運算,而且維度不低,因此無法這樣做 想請問大家是否有遇過類似的問題,或是有什麼解決的辦法呢? 目前我是想到把cell element變成sting,但總是不太確定 謝謝大家! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 160.39.46.71 ※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1425408769.A.765.html

03/04 04:23, , 1F
先存成string,要相乘時跑迴圈做成
03/04 04:23, 1F

03/04 04:23, , 2F
prod=['(' a{i} ')*' prod]; 的形式
03/04 04:23, 2F

03/04 04:27, , 3F
最後用str2func(['@(x)' prod '(x)']) 做回function handle
03/04 04:27, 3F

03/04 15:40, , 4F
方便解釋一下,先存成string的方法嗎?
03/04 15:40, 4F

03/04 15:41, , 5F
我用cell2stra{a{i,j})無法完全變換耶,謝謝sunev!
03/04 15:41, 5F

03/04 19:30, , 6F
這cell不是你做的嗎?一開始就存string啊?
03/04 19:30, 6F

03/04 19:31, , 7F
不然用fun2str 把f_handel換回string,用cellfun去掃cell
03/04 19:31, 7F
文章代碼(AID): #1KzWC1Tb (MATLAB)
文章代碼(AID): #1KzWC1Tb (MATLAB)