【问题标题】:How to access function handles in a cell array?如何访问元胞数组中的函数句柄?
【发布时间】:2015-09-26 04:43:40
【问题描述】:
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);

但我在这里得到的仍然是一个元胞数组,这意味着我不能使用 h 来评估 t=0.1。

非常感谢您的帮助!

【问题讨论】:

    标签: matlab cell-array function-handle


    【解决方案1】:

    当您执行h = rate_arr_cst_h(i); 时,您正在访问元胞数组的i^th 元素,它仍然是一个元胞。如果要访问元胞数组中i^th单元格的内容,需要这样做:h = rate_arr_cst_h{i};。注意大括号的使用。

    【讨论】:

      【解决方案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);
      

      【讨论】:

      • 如果任何答案解决了您的问题,请点击答案旁边的勾号接受它。如果没有,请发表评论,以便人们知道您在特定问题上需要进一步的帮助。
      猜你喜欢
      • 1970-01-01
      • 2018-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多