arrayfun syntax and use with scalar input

Hello people,
I've been (ab)using arrayfun and cellfun for some time without fully understanding the syntax. It centers around '@' symbol followed by the arguements.
To demonstrate, if I want to add 2 arrays, I can do:
a=[1 2;3 4];
b=[5 6;7 8];
c=arrayfun(@(x,y) x+y,a,b);
But what if I wanted to simply add a scalar?
a=[1 2;3 4];
b=2;
c=arrayfun(@(x,y) x+y,a,b);
Error: All of the input arguments must be of the same size and shape.
Previous inputs had size 2 in dimension 1. Input #3 has size 1
So is there a good summary of arrayfun as it's used above? Can one treat an input as a scalar or vector and others as arrays?
Thanks,
-Chris

댓글 수: 2

Stephen23
Stephen23 2020년 5월 28일
"Can one treat an input as a scalar or vector and others as arrays?"
No, but you can easily parameterize the function using an anonymous function:
checker
checker 2020년 5월 28일
Thanks for the link. I'll spend some time on it.

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

 채택된 답변

James Tursa
James Tursa 2020년 5월 28일

0 개 추천

To use a scalar you could use this syntax:
a=[1 2;3 4];
b=2;
c=arrayfun(@(x)x+b,a);
The function handle would pick up b from the workspace.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Operators and Elementary Operations에 대해 자세히 알아보기

태그

질문:

2020년 5월 28일

댓글:

2020년 5월 28일

Community Treasure Hunt

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

Start Hunting!

Translated by