현재 각 관측치에 대해 4 개의 값을 포함하는 관측치 집합에 대해 일련의 퍼지 규칙을 자동으로 생성하려고합니다. 상태 (Fisher 's Iris Data의 좋은 예입니다)에 해당합니다.Matlab에서 4 차원 규칙 표 단순화 : 각 차원의 행과 열을 주소 지정
Matlab에서 하나의 셀 (a, b, c, d)에 해당 상태가 포함될 4 차원 규칙 테이블을 생성 중입니다. 테이블을 줄이려면 Hong and Lee 행 및 열 유사성 검사 방법을 따르고 있지만 세 번째 및 네 번째 차원의 행과 열을 처리하는 방법을 이해하는 데 어려움을 겪고 있습니다. 이 방법을 통해 각 차원이 개별적으로 처리된다는 사실을 이해할 수 있으며 규칙이 true이면 표가 단순화됩니다.
- 인접한 열이나 행의 모든 셀이 같은 경우 다음과 같이 병합에 대한 규칙입니다.
- 두 개의 셀이 같거나 인접한 셀 중 하나가 공백 인 경우
열 또는 행 중 하나 이상이 모두 인 셀이 비어 있지 않습니다.- 열 또는 행의 모든 셀이 비어 있고 두 열의 셀이 인접한 열 또는 행이 동일한 경우 은 세 개를 병합합니다. 열 또는 행의 모든 셀들이 비어있는 그 두
인접한 행 또는 열에서 셀들이 있다면 이들 중 동일 또는 하나가 비어 있으면- 세 병합.
- 열 또는 행의 모든 셀이 비어있는 경우 및 열의 모든 비어
세포 또는 왼쪽 가 동일한 영역 및 열 또는 행의 모든 비어 있지 않은 셀이 그것으로 행한다면 의 오른쪽에는 동일한 영역 인 이 있지만 이전에 설명한 영역과 다른 하나는 열을 두 부분으로 병합합니다.
혼란스러운 비트가 있습니다. 전체 행/열이 인접 항목 (규칙 1)과 동일한 지 확인하기 만하면됩니다.
if (a,:,:,:) == (a+1,:,:,:)
(:,b,:,:) == (:,b+1,:,:)
(:,:,c,:) == (:,:,c+1,:)
(:,:,:,d) == (:,:,:,d+1)
이 정확히 맞습니까?
하지만 행/열의 요소가 일치하는지 또는 둘 중 하나가 0 (규칙 2와 4)인지 확인하려면 약간 손실됩니다. 내가 지금의 생각에 의해 혼동 해요로
for c = 1:20
for i = 1:length(a)
if (i,:,c,:) == (i,:,c+1,:)
...
else if (i,:,c+1,:) == 0
...
else if (i,:,c,:) == 0 etc.
for d = 1:20
for i = 1:length(a)
if (i,:,:,d) == (i,:,:,d+1)
...
else if (i,:,:,d+1) == 0
...
else if (i,:,:,d) == 0 etc.
도 네 차원 배열에 어떤 도움이 도움이 될 것입니다 :
for a = 1:20
for i = 1:length(b)
if (a+1,i,:,:) == (a,i,:,:)
...
else if (a+1,i,:,:) == 0
...
else if (a,i,:,:) == 0 etc.
와 세 번째와 네 번째 치수 :이 라인을 따라 뭔가 될 것 세 개 이상! 내 의미를 이해하기 위해 종이를 보라고 조언합니다. 그들은 아이리스 데이터를 사용했지만 2D 테이블이있는 예제 만 제공했습니다.
은 == 0과 동일합니까? Matlab에서 그들은 다르다 – Marc
"비어있는"의미는 규칙 테이블의 해당 위치에있는 셀에 상태 값이 포함되어 있지 않으므로이 경우 빈 == 0입니다. – Cate