我有一个包含在匿名方程中的方程组。我不想在创建函数时定义所有方程,而是想在for循环的每一步中添加一个。这可能吗?
答案 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) = 5
,A{2}(2) = 6
和 A{3}(2) = 7
如果您不熟悉单元格数组,可以阅读其使用情况here。
同样,你想要达到的目标可能会有所不同。我希望这适合你。