2016-09-23 5 views
-1

3x3x3 행렬에 추출 할 특정 요소 집합이 있습니다. 그러나 요소를 선택한 후에 행렬에 요소를 정렬하고 싶습니다.MATLAB : 선택된 행렬 요소의 행렬 구성

a(1,:,:)=1*[1 2 3; 4 5 6; 7 8 9]; 
a(2,:,:)=2*[1 2 3; 4 5 6; 7 8 9]; 
a(3,:,:)=3*[1 2 3; 4 5 6; 7 8 9]; 

a(a>1.0) 

조건 a(a>1.0) 나에게 요소의 벡터를 제공하지만, 원래의 순서 다음과 같은 매트릭스를 주문하는 방법은 무엇입니까 : 예는?

+2

가 어떻게 그들의 "원래"순서를 정의와 다른 값을 대체하는 것입니다? 임의의 행렬을 원한다면 작동하지 않을 것입니다. 행렬은 직사각형이어야하며이를 보장 할 방법이 없습니다. – excaza

+1

'a (a> 1.0)'를 수행하면 열의 주요 순서로 벡터가 반환됩니다. 즉, 반환되는 요소는이 조건을 만족하는 모든 값이 위에서 아래로 왼쪽으로 스위핑하여 'A'에서 읽히게됩니다. 그렇다면 여전히 그 순서를 유지하고있는 각 슬라이스로 들어가는 것입니다. 이것이 원하는 주문이 아니면 게시물을 편집하여 명시하려는 순서를 명시하십시오. – rayryeng

+1

'(a> 1.0). * a'을 찾으십니까? – beaker

답변

0

귀하의 기준을 충족시키지 못하는 요소에 무엇을하고 싶습니까?

당신은 간단하게하기 위해 a(a<=1) = nan;

0

가정하자 2-D 매트릭스와 같은 뭔가를 할 수 :

a(mod(a, 2) == 0) 
:

a = [1 2 3; ... 
    4 5 6]; 

가의 만 값을 가지고 자신의 원래 모양에 보관하자

원하는 사항 :

2 
4 6 

그러나, 매트릭스의 세계에서, 공간이 같은 행렬이있다? 그렇습니다, 희소 한 모체. 하지만 희소 행렬은 으로 채워져 있음을 알아야합니다.

그래서, 내 제안은 NaN

b = a; % just make a duplicate 
b(mod(b, 2) == 1) = nan 
b = 
    nan 2 nan 
     4 nan  6