2016-06-22 3 views
1

문제점 : varargin 구문을 사용하는 함수를 작성했습니다.이 함수는 here으로 설명되어 있습니다. 이제는이 함수에 전달할 수있는 인수 목록을 만드는 방법에 문제가 있습니다. 설정은 이것에 필적 : 은 매트릭스 A로 임의 많은 행렬의 곱을 결정가변 인수로 함수의 인수 목록 만들기

matrixmult(A, varargin)

이제 N 매트릭스와의 곱을 결정하고자 I 함수를 말해, 여기서 n 코드에서 이전에 설정됩니다. 모양은 다음과 같습니다.

n=4; 
A=eye(5); 
B=ones(5); 
matrixmult(A, ?) 

대신 무엇을 써야합니까?

n=4; 
A=eye(5); 
B=ones(5); 
matrixmult(A,B,B,B,B) 

구글 등의 변수 입력은 항상 varargin를 사용하고 루프의 종류에 생성됩니다 인수를 전달하지 않는 방법에 대한 질문에 리드 도움이되지 않았다 :이 같은 결과를받을 수 있도록한다. eval (문자열)을 사용하기 위해 문자열 ', B'를 만들고 여러 번 반복하는 등 여러 가지 시도를했습니다. 중복되는 경우이를 표시하십시오. 미리 도움을 주셔서 감사합니다.

답변

1

모든 입력을 셀 배열에 배치 한 다음 에 {:} 구문을 사용하면 여러 입력을 함수에 전달할 수 있습니다. 귀하의 경우 그래서

, 뭔가 같은 :

% Create n copies of B each within it's own cell array element 
inputs = repmat({B}, [1 n]); 

% Pass all of these B matrices to your function 
matrixmult(A, inputs{:}); 
관련 문제