Как игнорировать NaN в запросе размера по столбцам для матрицы [nx 1] (в Matlab) - PullRequest
0 голосов
/ 18 марта 2012

У меня есть ячейка в Matlab: c [3x1 double], со значениями:

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

Теперь я хочу узнать (по столбцу) размер ячейки c, игнорируя любые NaN (которые будутбыть size = 1).Обычно я бы использовал:

size(c{1},1)

Но это не игнорирует NaN (и, следовательно, возвращает size = 3).Кто-нибудь знает, как я мог бы рассчитать размер этой ячейки, компенсирующей любые NaN (максимально эффективно)?

Ответы [ 2 ]

0 голосов
/ 31 октября 2013
a = find(isnan(c{1}(1)))
length(a)
0 голосов
/ 18 марта 2012

Почему вы используете клетки? Почему бы не использовать матрицу? Судя по вашим комментариям, вы хотите изучить использование разреженной матрицы. Таким образом, вы вводите только те значения, которые не равны нулю / нулю. Смотри http://www.mathworks.com/help/techdoc/math/f6-8856.html

Кроме того, я не знаю способа игнорировать NaN при расчете размера. Они имеют тенденцию игнорироваться в расчетах мин / макс.

...