Покрасьте некоторые образцы рисунка MATLAB другим цветом

#matlab #matlab-figure

#matlab #matlab-рисунок

Вопрос:

У меня есть дискретный сигнал x длины N, отслеживаемый в MATLAB с помощью команды

 stem(abs(x)); axis([0 N 6 0 4]);
  

Полученный рисунок показан ниже:

введите описание изображения здесь

Мой вопрос Мне нужны только некоторые значения, соответствующие, например, индексу [7 10 11 12 15 18 48 50 52 60] чтобы быть окрашенным в другой цвет, скажем, в красный. Как я могу сделать это в своей фигуре?

Ответ №1:

Использование нескольких графиков по hold on и индексация матрицы

Вы могли бы, возможно, и альтернативно разместить график поверх графика, используя hold on . Это требует корректировки, в которой в данном случае вам нужен вектор Sample и Indices который указывает номер выборки / индекс точки данных. Вы также можете использовать индексацию матрицы, чтобы получить точки амплитуды / данных, соответствующие ключевой точке, Indicies .

Используя два графика

 %Vector relating to the sample/data point number%
Sample = linspace(1,70,70);

%Random test data%
X = randi([0,2],1,70);
stem(Sample,X);

hold on
%Key indices to change colour%
Key_Indices = [7 10 11 12 15 18 48 50 52 60];

%Matrix indexing to get values/amplitudes corresponding to key indices%
X_Prime = X(Key_Indices);

stem(Key_Indices,X_Prime,'r');

axis([0 70 0 3]);
hold off
  

Запускался с использованием MATLAB R2019b

Ответ №2:

Этот код делает красными только круги, а не основы

график с выделенными красными кругами

 %Vector relating to the sample/data point number
Sample = linspace(1,70,70);

%Random test data
X = randi([0,2],1,70);
stem(Sample,X);

%Key indices to change color
Key_Indices = [7 10 11 12 15 18 48 50 52 60];

line(Sample(Key_Indices), X(Key_Indices), 'linestyle', 'none', 'marker', 'o', 'color', 'r')

axis([0 70 0 3])
grid on