作者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://webptt.com/cn.aspx?n=bbs/MATLAB/M.1425408769.A.765.html
1F:推 sunev: 先存成string,要相乘时跑回圈做成 03/04 04:23
2F:→ sunev: prod=['(' a{i} ')*' prod]; 的形式 03/04 04:23
3F:→ sunev: 最後用str2func(['@(x)' prod '(x)']) 做回function handle 03/04 04:27
4F:→ brahmsliu: 方便解释一下,先存成string的方法吗? 03/04 15:40
5F:→ brahmsliu: 我用cell2stra{a{i,j})无法完全变换耶,谢谢sunev! 03/04 15:41
6F:推 sunev: 这cell不是你做的吗?一开始就存string啊? 03/04 19:30
7F:→ sunev: 不然用fun2str 把f_handel换回string,用cellfun去扫cell 03/04 19:31