[讨论] 将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