如何在ylab中将y指定为2个函数的向量?

时间:2014-11-14 18:54:11

标签: matlab function vector

我正在尝试创建一个for循环来运行我的程序并调用我创建的函数程序。我已经成功地让它运行但现在我想通过将y定义为两个函数的向量而不是y1和y2来简化它并缩短我的程序。我尝试用里面的函数创建一个2单元格数组,但这是一个失败的努力。这就是我所拥有的。

f =cell(size(a));
f(1) =[@(t)  4*t];
f(2) =[@(t)   20+(5-t).^2];

有关将这些2组织成一个y输入的向量的建议吗?

2 个答案:

答案 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