Определите количество точек на графике, Matlab - PullRequest
0 голосов
/ 12 июля 2020

Мне нужно построить функцию cos и выбрать n точек на графике.

Я построил функцию cos как

x = -pi:0.01:pi; 
y=cos(x);
plot(x,y)

В результате я получил cos-plot и набор (x, y). Как я могу определить, например, 4 точки для этой функции?

Я думал определить вектор с помощью y и, используя randi(y) и l oop, определить n количество y:

for i = 1:n
   ind = randperm(numel(y), 1); 
   r(i) = y(ind);
 end

Это дает мне случайный выбор точек. НО Мне нужно определить равное количество точек с обеих сторон, если количество точек должно быть четным, а если нечетное, одна точка находится в центре.

Например: если я выберите 4 очка, 2 очка будут слева, 2 - справа. Если количество точек 5, то одна находится сверху / посередине, 2 точки будут слева, 2 - справа.

Как я могу реализовать это в Matlab?

1 Ответ

1 голос
/ 12 июля 2020

Используйте функцию linspace. Приведенный ниже код даст вам 4 точки, равномерно распределенные от -pi до pi. (Есть функция-компаньон logspace, которая будет равномерно распределять точки в пространстве журнала.)

x = linspace(-pi,pi,4)

Тем не менее, есть еще один подход, который может быть полезен при построении графиков функций. Команда fplot рассмотрит функцию и оптимизирует количество точек, чтобы вы получили респектабельно выглядящую линию, и вам не нужно было беспокоиться о количестве точек.

fplot(@(x) cos(x),[-pi pi],'b')
...