How do I pass extra known parameters to arrayfun?

For example, if I want to find the position in the corresponding array b from each element of array a, how should I write the code?
a = [1,2,3];
b = [2,1,1,3,1,2];
idx = arrayfun(@(x,b)find(x==b),a,b)
Error using arrayfun
All of the input arguments must be of the same size and shape.
Previous inputs had size 3 in dimension 2. Input #3 has size 6
The desired idx outcome is:{[2,3,5],[1,6],[4]}

 채택된 답변

xingxingcui
xingxingcui 2021년 8월 6일
편집: xingxingcui 2021년 8월 6일
I get the answer:
a = [1,2,3];
b = [2,1,1,3,1,2];
idx = arrayfun(@(x)find(x==b),a,'UniformOutput',false)
idx = 1×3 cell array
{[2 3 5]} {[1 6]} {[4]}

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Resizing and Reshaping Matrices에 대해 자세히 알아보기

제품

릴리스

R2021a

질문:

2021년 8월 6일

편집:

2021년 8월 6일

Community Treasure Hunt

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

Start Hunting!

Translated by