2013-12-04 6 views
0

У меня возникают трудности с попыткой построить обратную синусоидальную волну в MatLab. Учебное пособие, за которым я следую (а не учебник MatLab), рисует его вручную, помещая несколько точек между каждой вертикальной асимптотой, чтобы дать вам представление о том, как будет выглядеть граф. Я пробовал использовать функцию Matlab csc(), и график, нанесенный вдоль стороны x, не похож на нарисованный пример. Нарисованный пример от 0 до pi похож на большой U и от pi до 2*pi является отрицательной версией (вверх ногами). Здесь все различные комбинации кода, который я пробовал:Построение обратной волны синусоидальной волны в MatLab

x = 0:0.01:100; 
y = 5*csc(x); % amplitude of -5 to 5 
plot(x,y) 

Тогда я попробовал:

x = 0:0.01:100; 
y = 1/5*sin(x); % amplitude of -5 to 5 
plot(x,y) 

Оба результата резко отличаются. Мне было интересно, если использование вектора x было в порядке, поскольку я был под впечатлением после одного из моих предыдущих сообщений, что стандартные триггерные функции MatLab настроены на использование радианов, а не градусов?

+1

Вам нужны скобки вокруг 5 * sin (x), конечно! И да, все функции принимают радианы. –

+0

Спасибо. поэтому, когда я создаю вектор для перехода в функцию триггера, мне нужно преобразовать вектор в радианы? Или MatLab делает это автоматически? – user1574598

+0

Не обязательно. Существуют также версии sin, cos и т. Д., Которые занимают ученые. Они называются sind, cosd, tand, .. Просто проверьте документацию для этих –

ответ

1

Вы можете попробовать это -

x = 0 : 0.01 : 2*pi; 
y = csc(x); 
plot(x,y) 
ylim([-10, 10]) 

enter image description here

Это то, что вы ожидали?

+0

Спасибо, его близко, гораздо ближе, чем моя попытка. Я заметил, что вы закончили первый оператор 'x =' с 'pi * 2', а не 100. Это значит, что мы видим только один период? Если это так, я действительно задавался вопросом, как это сделать :-) Кроме того, почему ось y должна быть ограничена? Я думал, что функция 'csc()' будет иметь только амплитуду между «-1» и «1» – user1574598

+0

Да, я выбрал переменные оси x, чтобы показать только один период. Функция 'csc()' фактически неограничена - это обратная сторона 'sin()' проходит через нуль, поэтому 'csc()' стремится к бесконечности при любом кратном 'pi'. –

+0

Thats great, спасибо. Я бы подумал, что вам нужно было разработать то, что «0.01» было в радианах, когда вы инициализировали переменную 'x', или MatLab знает, что мы имеем в виду? – user1574598

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