2014-12-12 3 views
1

Предположим, у меня естьИгнорировать NaN в построении MATLAB?

A = [1 2 3 nan 5]; 

Если я

plot(1:5, A, 'o-'); 

я буду иметь голубую часть, как показано ниже.

enter image description here

Как достичь красной части?

Update

Я сожалею, что не делает прямо точку в первом кадре, но isnan() метод, который помогает пропустить эти значения не желательные, потому что мне нужно построить многие из этих линий, некоторые из у которых отсутствуют значения (NaN) в некоторых случайных местах. Поэтому я должен поддерживать согласованность оси x для каждой строки. Вот почему я не могу просто пропустить NaN.

ответ

8

Не супер элегантный, но функциональный:

idxs = ~isnan(A); 
x = 1:5; 
plot(x(idxs), A(idxs)); 
+0

Просьба видеть обновления в этом вопросе. Благодаря! –

+1

Это должно работать одинаково хорошо с несколькими строками (при необходимости используйте 'hold on'). Если это не сработает, добавьте конкретный пример к вашему вопросу. –

+0

О да, извините, я ошибаюсь. Это тоже работает! Благодаря! –

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