2011-04-07 6 views
1

예를 들어 행렬 2x2를 생성하는 함수가 있습니다. [1 2; 매트랩 창의Simulink의 Matlab 함수에서 다차원 행렬을 출력 할 수 없습니다.

function[result] = Rho(x) 
// I've tried and so: 
result = [1 2; 3 4]; 
// And so: 
result(1,1) = 1; 
result(1,2) = 2; 
result(2,1) = 3; 
result(2,2) = 4; 

내가 오른쪽 결과 참조 : 4 : 3] I 같은 간단한 함수가 2, 3,

>> Rho(1) 
ans = 
    1  2 
    3  4 

을하지만 시뮬에 항상 [1 + 4]. 내 실수는 어디 갔지?

enter image description here

P.S. 함수의 인수 x를 제거하는 것을 잊었습니다. 왜냐하면 실제 함수에서 인수 x에 따라 행렬을 만들기 때문입니다. 그러나 우리 예제에서 역할을하지 않습니다.

답변

1

MATLAB 함수 블록 (현재는 최신 버전에서는 Interpreted MATLAB Function block)에 대한 매개 변수 설정 때문일 가능성이 있습니다. 당신이 원하는 것

enter image description here

참고 2로 출력 크기를를 설정하고 1-D 검사에 축소 2-D 결과를 취소 : 그 블록에 대한 매개 변수 대화 상자에서보세요 상자. 이 값을 그대로두면 왼쪽에서 오른쪽으로 각 열을 따라 값을 추출하여 2x2 행렬을 1 차원 배열로 변환합니다.이 값은 예제에서 [1 3 2 4]입니다.

위의 변경 사항을 적용한 후에는 Display block의 크기를 조정하여 2 행 2 열을 표시하면됩니다.

+0

대단히 감사합니다. 도움이되었습니다. 블록 속성에서이 옵션을주의해야합니다.)) –

관련 문제