MATLAB Answers

How to multiply function handles stored in a cell array?

2 views (last 30 days)
I have a application to multiply the function handles which are stored in a cell array.
The expected output need to be,
sa=@(w) Na{1,1}(w)*Na{1,2}(w)*Na{1,3}(w);
The length of the cell array differs for each case. So, the multiplication need to be automated.
I have tried with the below script,
D=length(Na);
A=[1 0;0 1];
for j=1:D
sa=@(w) A*Na{1,j}(w);
A=@(w) sa(w);
end
It is not producing any results.
Kindly provide any suggestions.

Accepted Answer

Rik
Rik on 27 Jul 2021
Na=repmat({@(w) [1,-w*i(2,e);0 1]},1,3)
Na = 1×3 cell array
{@(w)[1,-w*i(2,e);0,1]} {@(w)[1,-w*i(2,e);0,1]} {@(w)[1,-w*i(2,e);0,1]}
sa=@(w) 1;
for n=1:numel(Na)
sa=@(w) sa(w)*Na{n}(w);
end
Note that in this case you can do something much simpler:
N=3;
sa=@(w) [1,-w*i(2,e);0 1]^N;

More Answers (0)

Community Treasure Hunt

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

Start Hunting!

Translated by