2011-09-16 4 views
0

MATLAB의 일부 행렬 연산에서 질문하고 싶습니다. , 일부 행렬 연산 및 데이터 추출

A = [1  1 17 
    1  1 14 
    1  2 10 
    1  2 11 
    2  1  9 
    2  1  9 
    2  2 13 
    2  2 12 
    3  1 18 
    3  1 15] 

난, 첫 번째 열을 원하는 M 두 번째 열 말 D는 하나의 행 행렬은 다음 조건에 따라에 발생하는 전체 행렬을 제어하는 ​​말 :

우리는이 행렬을 가정

다음

프로그램 D 후, M의 값을 입력하도록 요청한다 :

M = input(' ENTER M VALUE = ') ; 

D = input(' ENTER D VALUE = ') ; 

해주기, 출력은 M 및 D에 대응하는 2 개 값이 되리라 이 두 값은 예를 들어, 세 번째 열에서

을 수행 할 :

if M = 1 and D = 2 , the output is B = 10 ; 11 

다른 예 :

if M = 3 and D = 1 , the output is B = 18 ; 15 

등을.

사실, if 문을 사용하여이를 해결하는 방법을 알고 있지만 데이터가 크기 때문에 시간이 오래 걸립니다. 나는 그것을 할 수있는 짧은 방법이 있다고 확신합니다.

감사합니다.

+1

입니다 수행하는 간단한 방법은 [논리적 색인]입니다 (http://blogs.mathworks.com/steve/2008/01/28/logical-indexing/) 이런 종류의 문제. 문제에 적용되게하려면 Jonas의 대답 :-)을 참조하십시오. 덕분에 –

답변

2

가 배울 수있는 키워드

B = A(A(:,1)==M & A(:,2)==D, 3); 
+0

. 우수한 코드. 고마워요. – kfupm