Create function such that for each element of the vector it applies different function

9 次查看(过去 30 天)
Let's say I have following functions:
f1 = @(x) a*x(1) + 1;
f2 = @(x) b*x(2) - 1;
where a and b are parameters that I want to specify before. And a vector:
x = [2;4];
I want to create function handler F that will be created before hand (like a delegation in C#) using a and b. I want to use F to calculate next vector values (f1 for first cell, f2 for second) for instance given a = b = 1:
F(x) = [3;3];
I tried creating cell:
F = {f1;f2}
but it gives me an error "Index exceeds the number of array elements (2).".

采纳的回答

Ameer Hamza
Ameer Hamza 2020-12-30
编辑:Ameer Hamza 2020-12-30
Try something like this
a = 1;
b = 1;
x = [2; 4];
f1 = @(x) a*x(1) + 1;
f2 = @(x) b*x(2) - 1;
F = @(x) [f1(x); f2(x)];
Result
>> F(x)
ans =
3
3

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 .NET Events and Delegates in MATLAB 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by