Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МАТЛАБ 3 - графика.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
7.9 Mб
Скачать

3. Графики дискретных отсчетов функции

В сопротивлении материалов и строительной механике принято графики параметров напряженно-деформированного состояния закрашивать (штриховать). Для построения подобных графиков используется команда stem( … ).

stem(x, y) – строит график с закрашенными частями между нулевой линией и кривой у = f(x).

stem( … ,  LINESPEC  ) – аналогична команде stem(x, y), но имеет спецификацию линий  LINESPEC  , подобную строковой константе s команды plot(х, у, s).

Stem( … ,  filled ) – строит график функции у = f(x) с закрашенными маркерами.

>> stem(x,y3)

Включение и выключение масштабной сетки

При построении графиков наряду с разметкой осей часто необходимо иметь масштабную сетку. Команды grid позволяют управлять этим процессом. Если после команды построения графиков добавить команду включения или выключения масштабной сетки, то можно получить график с требуемым видом:

grid on добавляет сетку к текущему графику;

grid off отключает сетку;

grid – последовательно производит включение и отключение сетки.

Несколько графиков в одной системе координат

2)>> x=0:0.1:10;

>> y1=sin(x);y2=cos(x);y3=sin(x)./x;

>> plot(x,y1,x,y2,x,y3)

>> plot(x,y1,'b-',x,y2,'go',x,y3,'rx')

>> x=-2*pi:0.1*pi:2*pi;

>> y1=sin(x);

>> y2=sin(x).^2;

>> y3=sin(x).^3:

>> plot(x,y1,'-m',x,y2,'-*',x,y3,'--ok')

Логарифмический масштаб

>> x=logspace(-1,3);

>> loglog(x,exp(x)./x)

>> grid on

>> x=0:0.5:10;

>> semilogy(x,exp(x))

>> grid on

FPLOT

fplot: fplott'f(x)'. [xmin xmax]

1) >> fplot('sin(1 ./ x)', [0.01 0.1],1e-3)

2) >> fplot('[tan(x),sin(x),cos(x)]',2*pi*[-1 1 -1 1])

3)>> f = @(x)abs(exp(-j*x*(0:9))*ones(10,1));

>> fplot(f,[0 2*pi])

BAR

  • bar(x, Y) — строит столбцовый график элементов вектора Y (или группы столбцов для матрицы Y) со спецификацией положения столбцов, заданной значениями элементов вектора х, которые должны идти в монотонно возрастающем порядке;

  • bar(Y) — строит график значений элементов матрицы Y так же, как указано выше, но фактически для построения графика используется вектор х=1:m;

  • barU.Y,WIDTH) или BAR(Y,WIDTH) — команда аналогична ранее рассмотренным, но со спецификацией ширины столбцов (при WIDTH > 1 столбцы в одной и той же позиции перекрываются). По умолчанию задано WIDTH = 0.8.

V=[0;2;5;7;9;-2;-4;-6;-13];

bar(V);

>> bar(rand(12.3),'stacked'), colormap(cool)

>> barh(rand(5.3),'stacked'), colormap(cool)

Hist - гистограммы

  • N=hist(Y) — возвращает вектор чисел попаданий для 10 интервалов, выбираемых автоматически. Если Y — матрица, то выдается массив данных о числе попаданий для каждого из ее столбцов;

  • N=hist(Y,M) — аналогична вышерассмотренной, но используется М интервалов (М — скаляр); 

  •  N=hist(Y.X) — возвращает числа попаданий элементов вектора Y в интервалы, центры которых заданы элементами вектора X;  

  • [N,X]=HIST(...) — возвращает числа попаданий в интервалы и данные о центрах интервалов.

>> x=[1:1:20];

>> y=[2:1:35];

>> z=[x y];

>>hist(z);

>> x=-3:0.2:3;

>> y=randn(1000,1);

>> hist(y,x)

Лестничные графики — команды stairs

  • stairs(Y) — строит лестничный график по данным вектора Y;

  • stairs(X.Y) — строит лестничный график по данным вектора Y с координатами х переходов от ступеньки к ступеньке, заданными значениями элементов вектора X;

  • stairs(...,S) — аналогична по действию вышеописанным командам, но строит график линиями, стиль которых задается строками S.

>> x=0:0.25:10;

>> stairs(x,x.^2);

Графики с зонами погрешности errorbar

  • errorbar(X,Y,L.U) — строит график значений элементов вектора Y в зависимости от данных, содержащихся в векторе X, с указанием нижней и верхней границ значений, заданных в векторах L и U;

  • errorbar(X,Y,E) Herrorbar(Y.E) —строит графики функции Y(X) с указанием этих границ в виде [Y-E Y+E], где Е — погрешность;

  • errorbar(..., 'LineSpec') — аналогична описанным выше командам, но позволяет строить линии со спецификацией 'LineSpec', аналогичной спецификации, примененной в команде plot.

>> x=2:0.1:3;

>> y=erf(x);

>> e=rand(size(x))/10;

>> errorbar(x,y,e)

Графики в полярной системе координат

  • polarCTHETA, RHO) — строит график в полярной системе координат, представляющий собой положение конца радиус-вектора с длиной RHO и углом ТНЕТА;

  • polarCTHETA,RHO.S) — аналогична предыдущей команде, но позволяет задавать стиль построения с помощью строковой константы S по аналогии с командой plot.

>> t=0:pi/50:2*pi;

>> polar(t,sin(5*t))

Построение векторов

>> z1=-1+2*i;

>> z2=-2-3*i;

>> z3=2+3*i;

>> z4=5+2*i;

>> z=[z1,z2,z3,z4];

>> compass(z);

Представление нескольких графиков в одном окне

Иногда необходимо в одном окне поместить несколько графиков без наложения их друг на друга. Особенно удобно такое представление при построении эпюр напряженно-деформированного состояния элементов стержневых и пластинчатых систем. Для этого служит команда subplot, которую необходимо записать перед командой plot.

subplot (m, n, p) – разбивает графическое окно на m n подокон, при этом m – число подокон по горизонтали, п – число окон по вертикали, р – номер подокна, в которое будет выводиться текущий график.

>> x = 0.2*pi:0.01*pi:2*pi;

>> y1 = sin(x); y2=sin(x).^2; y3=sin(x).^3;

>> y4=cos(x).^2;

>> subplot(2,2,1);

>> plot(x,y1)

>> grid on

>> subplot(2,2,2)

>> plot(x,y2)

>> grid on

>> subplot(2,2,3)

>> plot(x,y3)

>> grid on

>> subplot(2,2,4)

>> plot(x,y4)

>> grid on

Движение точки в пространстве

  • comet3(Z) — отображает движение точки с цветным «хвостом» по трехмерной кривой, определенной массивом Z;

  • comet3 (X.Y.Z) — отображает движение точки «кометы» по кривой в пространстве, заданной точками [X(i),Y(i),Z(i)];

  • comet3(X,Y,Z,p) — аналогична предшествующей команде с заданием длины «хвоста кометы» как p*1ength(Z). По умолчанию параметр р равен 0.1.

>> x=0:0.01:15;

>> comet(x,sin(x) )

>> W=0:pi/500:10*pi;

>> comet3(cos(W))

Пространственные поверхности

Создание массивов данных для трехмерной графики

Трехмерные поверхности описываются функцией двух переменных z = f(x, y). Построение трехмерных графиков требует определение для х и у двухмерных массивов – матриц. Для создания таких массивов служит функция meshgrid, которая записывается следующим образом:

[X, Y] = meshgrid(x, y) ;

В основном она используется совместно с функциями построения графиков трехмерных поверхностей. Функция преобразует область заданную векторами х и у, в массивы X и Y, которые могут быть использованы для вычисления функции двух переменных и построения трехмерных графиков. Строки выходного массива Х являются копиями вектора х, а столбцы Y – копиями вектора у.

Пример:

>> [X Y]

=

mesh grid (4 : 7 , 9 : 13)

Х

=

4 5 6 7

4 5 6 7

4 5 6 7

4 5 6 7

4 5 6 7

Y

=

9 9 9 9

10 10 10 10

11 11 11 11

12 12 12 12

13 13 13 13

Приведем еще пример применения функции meshgrid:

>> [X Y] = meshgrid ( 1 : 0.1 : 1, 1 : 0.1 : 1);

Такой вызов функции создает опорную плоскость для построения трехмерной поверхности при изменении х и у от – 1 до 1 с шагом 0.1.