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

作者: brahmsliu (薛丁格的貓)   2015-03-04 02:52:47
大家好,
我目前的狀況是我有創造了一個cell,裡面的每個元素都是函數 @(x)f(x) 的形式
在運算的最後,我需要將此cell每一列的函數相乘,得到一個新函數g(x)再運算
就我所知,MATLAB是不支援f1(x)*f2(x)=f3(x),必須在宣告時直接定義好
但是我的cell是經過滿複雜的運算,而且維度不低,因此無法這樣做
想請問大家是否有遇過類似的問題,或是有什麼解決的辦法呢?
目前我是想到把cell element變成sting,但總是不太確定
謝謝大家!
作者: sunev (Veritas)   2015-03-04 04:23:00
先存成string,要相乘時跑迴圈做成prod=['(' a{i} ')*' prod]; 的形式最後用str2func(['@(x)' prod '(x)']) 做回function handle
作者: brahmsliu (薛丁格的貓)   2015-03-04 15:40:00
方便解釋一下,先存成string的方法嗎?我用cell2stra{a{i,j})無法完全變換耶,謝謝sunev!
作者: sunev (Veritas)   2015-03-04 19:30:00
這cell不是你做的嗎?一開始就存string啊?不然用fun2str 把f_handel換回string,用cellfun去掃cell

Links booklink

Contact Us: admin [ a t ] ucptt.com