作者brahmsliu (薛丁格的貓)
看板MATLAB
標題[討論] 將Cell中的函數相乘?
時間Wed Mar 4 02:52:47 2015
大家好,
我目前的狀況是我有創造了一個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
推 sunev: 先存成string,要相乘時跑迴圈做成 03/04 04:23
→ sunev: prod=['(' a{i} ')*' prod]; 的形式 03/04 04:23
→ sunev: 最後用str2func(['@(x)' prod '(x)']) 做回function handle 03/04 04:27
→ brahmsliu: 方便解釋一下,先存成string的方法嗎? 03/04 15:40
→ brahmsliu: 我用cell2stra{a{i,j})無法完全變換耶,謝謝sunev! 03/04 15:41
推 sunev: 這cell不是你做的嗎?一開始就存string啊? 03/04 19:30
→ sunev: 不然用fun2str 把f_handel換回string,用cellfun去掃cell 03/04 19:31