在循环中向匿名函数添加输出

时间:2010-08-31 05:04:23

标签: matlab

我有一个包含在匿名方程中的方程组。我不想在创建函数时定义所有方程,而是想在for循环的每一步中添加一个。这可能吗?

1 个答案:

答案 0 :(得分:5)

我想如果你有一组线性方程,你可以使用矩阵构造它,然后通过向矩阵和/或其伴随的右侧向量添加行和列,可以自由地包含新操作。

如果你真的想尝试使用匿名函数,比如说你的函数是非线性的,那么我建议你研究一下arrays of anonymous functions。例如,

A = cell(3,1);          % Preallocate a 3 by 1 cell array
for ii = 1:3
  A{ii} = @(x) x^2+ii;  % Fill up the array with anonymous functions
end

现在,如果你检查单元格数组'A'中包含的内容,

A = @(x)x^2+ii
    @(x)x^2+ii
    @(x)x^2+ii

不要担心显示'ii'而不是我们之前给出的循环变量的实际数量,MATLAB已在内部用这些值替换它们。在当前函数范围中更改“ii”也不会影响它们在“A”中的值。

因此, A{1}(2) = 5A{2}(2) = 6 A{3}(2) = 7

如果您不熟悉单元格数组,可以阅读其使用情况here

同样,你想要达到的目标可能会有所不同。我希望这适合你。