2016-10-14 4 views
0

round 함수는 스칼라를 취하여이를 조작 할 수 있습니다. 그러나 그것은 또한 배열을 취하여 예상대로 작동 할 수 있습니다.사용자 정의 함수에 대한 배열 입력에 대한 스칼라 입력 일반화

>> round(2.3) 

ans = 

    2 

>> round([2.3,3.4]) 

ans = 

    2  3 

필자도 비슷한 기능을 가지고 있으며 배열 입력에 대해 "예상 된"방식으로 작동하려고합니다. 그것은 스칼라 입력에 대해 잘 작동합니다. for 루프를 실행하고 배열의 각 요소에 대한 내 기능을 평가할 수 있지만 다른 똑똑한 방법을 사용할 수 있습니까?

function [a,b]=func(c,d,e,f) 

그리고 난 d,e,f 가지고 있지만 난 c의 여러 값에 함수를 계산하려는 : 더 구체성를 들어

, 난이 -

g=[]; 
for i=1:10 
    [a,b]=func(c(i),d,e,f); 
    g=[g;[a,b]]; 
end 

내가 완전히 확실하지 않다 arrayfun을 적용하는 방법은 내가 사용해야하는 것이라고 생각합니다.

답변

0

당신이 찾고있는 것은 arrayfun 기능입니다. 여기 문서입니다 : http://www.mathworks.com/help/matlab/ref/arrayfun.html

말은,이 기능이 : 나는 행렬이

function res = myTest(a,b) 
size(a) % for checking that we work on each element 
res = a+1; 
res = res +b; 

제가 적용하려는

A = magic(3); 

MYTEST의 각 요소와 동일 A

A1 = arrayfun(@(x) myTest(x,2),A) 

내가 볼

+0

(X는 쉼표 이후에 선언 된 배열의 요소로 대체), 난 내 질문에 귀하의 제안에 따라 일부 쿼리를 추가했습니다. 도울 수 있니? –

관련 문제