我正在尝试创建一个for循环来运行我的程序并调用我创建的函数程序。我已经成功地让它运行但现在我想通过将y定义为两个函数的向量而不是y1和y2来简化它并缩短我的程序。我尝试用里面的函数创建一个2单元格数组,但这是一个失败的努力。这就是我所拥有的。
f =cell(size(a));
f(1) =[@(t) 4*t];
f(2) =[@(t) 20+(5-t).^2];
有关将这些2组织成一个y输入的向量的建议吗?
答案 0 :(得分:2)
如果您使用单元格数组,该怎么办:
f =cell(2,1);
f(1) ={@(t) 4*t}; %// Note the curly braces
f(2) ={@(t) 20+(5-t).^2};
使用以下内容,使用单元格数组更直观(感谢@rayryeng!)。使用花括号分配单元格的内容,而不是如上所述。
f{1} =@(t) 4*t;
f{2} =@(t) 20+(5-t).^2;
celldisp(f)
f{1} =
@(t)4*t
f{2} =
@(t)20+(5-t).^2
答案 1 :(得分:1)
另一种可能性是定义一个向量值函数,其组件是你的两个函数:
f1 = @(t) 4*t;
f2 = @(t) 20+(5-t).^2;
f = @(t) [f1(t) f2(t)];
所以例如
>> f(2.5)
>> ans =
10.0000 26.2500