2015-09-26 26 views
2
rate_arr_cst_1 = @(t) 2*sin(t)+10; 
rate_arr_cst_2 = @(t) 3*sin(2*t)+8; 
rate_arr_cst_h = {rate_arr_cst_1, rate_arr_cst_2}; 

我定义的这样的方式一个单元阵列,并尝试通过以下方式获得:如何访问单元格数组中的函数句柄?

i=1; 
h = rate_arr_cst_h(i); 

但我来到这里仍然是一个单元阵列,这意味着我不能使用小时,评价T = 0.1。

非常感谢您的帮助!

回答

2

使用FOR循环:

for ii = 1:numel(rate_arr_cst_h) 
    hh(ii) = rate_arr_cst_h{ii}(i); 
end 

,或者您可以使用cellfun

hh = cellfun(@(f) f(i), rate_arr_cst_h); 
+0

非常感谢! –

+0

如果任何答案已解决您的问题,请点击答案旁边的勾号以接受答案。如果不是,请删除评论,以便人们知道您需要针对特定​​问题提供进一步帮助。 – scmg

3

当您执行h = rate_arr_cst_h(i);时,您正在访问单元阵列的i^th元素,该元素仍然是单元格。如果要访问单元阵列中的i^th单元的内容,则需要执行:h = rate_arr_cst_h{i};。请注意使用大括号。

+0

太谢谢你了! –