2012-06-04 4 views

ответ

0

Возможно, вы имели в виду, чтобы исключить строки, содержащие значения NaN. Пример:

>> x = rand(6,2); 
>> x(3,1) = nan; x(5,2) = nan; 
>> x 
x = 
     0.81472  0.2785 
     0.90579  0.54688 
      NaN  0.95751 
     0.91338  0.96489 
     0.63236   NaN 
     0.09754  0.97059 

Сейчас:

>> newX = x(~any(isnan(x),2),:) 
newX = 
     0.81472  0.2785 
     0.90579  0.54688 
     0.91338  0.96489 
     0.09754  0.97059 
+0

альтернативно: 'x (any (isnan (x), 2), :) = [];' – Serg

1

Такое поведение объясняется здесь: http://www.mathworks.nl/help/techdoc/math/f1-85462.html#bq7egb6-1

Поскольку

in = ~isnan(adc.nv); 

in может иметь различное количество истинного/ложного элемента в каждом строки и/или столбца, возможно, что полученная матрица adc.nv(in) имеет различное количество элементов в строке/столбце и, следовательно, не может быть сконструировано как матрица Итак, Matlab выбрасывает все это вместе в одном векторе.

Смежные вопросы