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。
非常感谢您的帮助!
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。
非常感谢您的帮助!
当您这样做时h = rate_arr_cst_h(i);
,您正在访问i^th
单元格数组的元素,该元素仍然是一个单元格。如果要访问i^th
单元格数组中单元格的内容,则需要执行以下操作:h = rate_arr_cst_h{i};
. 注意大括号的使用。
要么使用 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);