2012-03-18 4 views
0

(매트랩)을 [NX 1] 행렬 NaN이의 열 방향의 크기 쿼리를 무시하는 방법 : (내가 matlab에에서 셀이

c{1}(1) = 0.4980 
c{1}(2) = NaN 
c{1}(3) = NaN 

지금 내가 알고 싶은 : 값으로, c [3x1 double]을 열 방향으로) 셀 c의 크기 (임의의 NaN을 무시할 때 (size = 1).

size(c{1},1) 

을하지만이 NaN의의 (따라서와는 size = 3 반환) 무시하지 않습니다 일반적으로 내가 사용합니다. 누구든지 내가 어떻게이 NaN (가능한 한 효율적으로)에 대한 보상이 셀 크기를 계산할 수 있는지 알고 있습니까?

+0

루프가 있고 어떤 항목이 NaN인지 판단 할 수있는 옵션이 있을지는 의문입니다. –

+0

@OliCharlesworth, 그건 내가 두려워했던 것입니다. 이것은 단지 예제 셀 (질문을 단순화하기 위해)입니다. 사용하고있는 실제 세포는 조금 크기 때문에 많은 시간이 걸릴 것입니다. 아 글쎄 :) –

+0

어쩌면 당신은 size = 3을 응답하기를 원하지만 size = 1로 응답하고 size (c {1}, 2)에'size (c {1}, 1)'을 수정하면된다. –

답변

0

왜 세포를 사용하고 있습니까? 왜 매트릭스를 사용하지 않습니까? 귀하의 의견을 판단하여 희소 매트릭스를 사용하여 조사하고 싶습니다. 이 f} 으 N 널/0이 아닌 값만 입력하십시오. http://www.mathworks.com/help/techdoc/math/f6-8856.html

또한 크기 계산에서 NaN을 무시할 방법이 없음을 알고 있습니다. 그들은 최소/최대 계산에서 무시되는 경향이 있습니다.

+0

셀을 사용하고 싶지는 않지만'[m, f, c] = mode (B)'가 리턴하는 것이므로, 꽤 많이 붙어 있습니다. 내가 행렬로 변환하지 않으면,하지만 너무 비효율적입니다. –

+0

cell2mat와 같은 것은 너무 비효율적입니까? 내 작품에서 나는 운송업자에게 벌금이 거의 없음을 알았다. – Mikhail

0
a = find(isnan(c{1}(1))) 
length(a) 
0
a = find(~isnan(c{1}(1))) 
length(a) 

씨. 쿠퍼의 대답은 거꾸로 ~가 없습니다. 나는 코멘트를 올렸지 만, 아직 허락되지 않았습니다.

관련 문제