# How to multiply function handles stored in a cell array?

조회 수: 3(최근 30일)
Vinothkumar Sethurasu 2021년 7월 27일
댓글: Vinothkumar Sethurasu 2021년 7월 28일
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.

댓글을 달려면 로그인하십시오.

### 채택된 답변

Rik 2021년 7월 27일
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;
##### 댓글 수: 1표시숨기기 없음
Vinothkumar Sethurasu 2021년 7월 28일
Thank you.

댓글을 달려면 로그인하십시오.

### Community Treasure Hunt

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

Start Hunting!

Translated by