看板 MATLAB 關於我們 聯絡資訊
大家好, 我目前的狀況是我有創造了一個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