저는 7 개의 인수를 취하여 행 벡터를 반환하는 함수가 있습니다. 처음 세 인수는 벡터 (열, 열, 행)이며 나머지 네 개는 선택적 스칼라입니다.bsxfun() 잘못된 출력 치수
bsxfun()
을 사용하여 마지막 인수의 벡터에 함수를 적용하고 싶습니다. 아래는 그렇게하려는 나의 시도입니다.
o = @(m,pulse,N0,samples_per_pulse,sample_select,filter,channel_cutoff) ELE452Functions.EvaluateBER(m,pulse,N0,samples_per_pulse,sample_select,filter,channel_cutoff);
oo = @(m,pulse,N0,samples_per_pulse,sample_select,filter,channel_cutoff) bsxfun(@(N0,channel_cutoff) o(m,pulse,N0,samples_per_pulse,sample_select,filter,channel_cutoff), N0' , channel_cutoff);
나는 벡터로 함수를 호출하려고
는oo(m,pulse,N0,1,1,1,[0.5 0.2]);
예를 들어,이 오류가 얻을 : 나는 bsxfun을 사용하여 경험하고 있지 않다
Error using bsxfun
Invalid output dimensions.
을 나는 설명서를 따라하려고 노력했다.
업데이트 : 아래의 코드를 루프에서 다시 작성 bsxfun를 사용 (개선) 할 :
이 내 질문을 할 수있는 명확한 방법이 될 수 있습니다.
는for i=1:length(channel_normalized_cuttoffs)
BER_LPchannel(i,:) = ELE452Functions.EvaluateBER(m,pulse,N0,1,1,1,channel_normalized_cuttoffs(i));
end
정확히 ELE452Functions.EvaluateBER''이다 무엇을 ? – Divakar
EvaluateBER는 ELE452Functions 클래스의 함수입니다. 그것은 별도의 m 파일에 있습니다. – user137017
아마도'permute'를 사용하여 세번째 dim -'bsxfun (........ permute (channel_cutoff (:), [3 2 1]))'에''channel_cutoff'를 보낼 필요가 있습니다. – Divakar