Самый простой способ создания вектора с равномерным шагом.
начальное_значение:шаг:конечное_значение
x = 0:10
- от 0 до 10 с шагом 1x = 0:0.5:10
- от 0 до 10 с шагом 0.5x = 10:-1:0
- от 10 до 0 с шагом -1Создает вектор с заданным количеством точек.
linspace(начальное_значение, конечное_значение, количество_точек)
x = linspace(0, 1, 100)
- 100 точек от 0 до 1x = linspace(-%pi, %pi, 50)
- 50 точек от -pi до piСоздает двумерные массивы для построения поверхностей.
X, Y = meshgrid(x, y)
Аналогична meshgrid, но с другим порядком индексации.
Создает вектор с логарифмически равномерно распределенными точками.
logspace(начальное_значение, конечное_значение, количество_точек)
x = logspace(0, 2, 10)
- 10 точек от 10^0 до 10^2x = logspace(-1, 1, 5)
- 5 точек от 10^-1 до 10^1Генерация равномерно распределенных случайных чисел.
grand(n, 'unf', минимальное_значение, максимальное_значение)
// Пример построения графика x = linspace(-10, 10, 100); y = sin(x); plot(x, y); // Пример создания сетки X, Y = meshgrid(-5:0.5:5); Z = sin(sqrt(X.^2 + Y.^2)); surf(X, Y, Z);
Метод | Тип последовательности | Параметры | Особенности |
---|---|---|---|
Оператор : | Равномерная | Начальное, шаг, конечное | Простой синтаксис |
linspace | Равномерная | Начальное, конечное, количество | Фиксированное количество точек | logspace | Логарифмическая | Начальный логарифм, конечный логарифм, количество | Логарифмический масштаб |
meshgrid | Двумерная сетка | Векторы x и y | Для 3D-графиков |
ndgrid | Двумерная сетка | Векторы x и y | Альтернативный порядок индексации |
grand | Случайная | Размер, тип, диапазон | Генерация случайных чисел |
// Генерация тестовых данных t = linspace(0, 2*%pi, 100); x = cos(t); y = sin(t); plot(x, y); // Создание логарифмической шкалы f = logspace(1, 5, 100); // частоты от 10^1 до 10^5
scf(n) // n - номер окна
Для очистки окна применяются команды:
clf() // очистка текущего окна
clf(n) // очистка окна с номером n
plot(x, y, s)
x = 0:0.1:2*%pi;
y = sin(x);
plot(x, y, 'r-o') // красный цвет, сплошная линия, маркеры-кружки
Символ | Описание |
---|---|
- | Сплошная линия |
-- | Пунктирная линия |
: | Точечная линия |
-. | Штрих-пунктирная |
Символ | Описание |
---|---|
. | Точка |
o | Круг |
x | Крестик |
+ | Плюс |
* | Звездочка |
s | Квадрат |
d | Ромб |
^ | Треугольник вверх |
v | Треугольник вниз |
> | Треугольник вправо |
< | Треугольник влево |
Символ | Цвет |
---|---|
r | Красный |
g | Зеленый |
b | Синий |
c | Голубой |
m | Пурпурный |
y | Желтый |
k | Черный |
w | Белый |
Можно комбинировать параметры в одном выражении:
plot(x, y, 'r-o') // красная линия со сплошными маркерами-кругами plot(x, y, 'b:s') // синяя точечная линия с квадратными маркерами plot(x, y, 'g--d') // зеленая пунктирная линия с ромбовидными маркерами
Параметр | Описание |
---|---|
thickness | Толщина линии |
mark_size | Размер маркеров |
mark_foreground | Цвет маркеров |
line_style | Стиль линии (числовой код) |
mark_mode | Режим отображения маркеров |
Код | Стиль линии |
---|---|
1 | Сплошная |
2 | Штрихпунктир |
3 | Пунктир |
4 | Точки |
Код | Цвет |
---|---|
1 | Синий |
2 | Зеленый |
3 | Красный |
4 | Голубой |
5 | Пурпурный |
6 | Желтый |
7 | Черный |
8 | Белый |
xtitle(title, xlabel, ylabel)
Параметры:
title - основной заголовок графика
xlabel - подпись оси X
ylabel - подпись оси Y
x = 0:0.1:10;
y = sin(x);
plot(x, y);
xtitle("График функции синуса", "Ось X", "Ось Y");
xgrid(); // сетка по умолчанию
xgrid(color); // сетка определенного цвета
xgrid(color, thickness); // сетка с заданной толщиной
xgrid(color, thickness, style); // сетка с заданным стилем
plot(x, y);
xgrid(color('black')); // черная сетка
legend(labels, pos)
x = 0:0.1:10;
plot(x, sin(x), 'r*');
plot(x, cos(x).^2, 'b*');
legend(["Синус", "Косинус"], 4);
// Пример полного оформления графика
x = 0:0.1:10;
plot(x, sin(x), 'r-');
plot(x, cos(x), 'b--');
// Добавляем заголовок и подписи
xtitle("Тригонометрические функции", "Время (сек)", "Значение функции");
// Добавляем сетку
xgrid(color('gray'), 1, 1);
// Создаем легенду
legend(["Синус", "Косинус"], "in");
Разбиение графического окна в Scilab
Команда subplot
Для размещения нескольких графиков в одном окне используется команда subplot. Она позволяет разбить окно на несколько подокон с собственными координатными осями.
Синтаксис команды:
subplot(m,n,p)
// Создаем четыре графика в одном окне
subplot(2,2,1)
plot(sin(x))
subplot(2,2,2)
plot(cos(x))
subplot(2,2,3)
plot(tan(x))
subplot(2,2,4)
plot(cotg(x))
x = 0:0.1:2*%pi;
subplot(2,1,1)
plot(x, sin(x))
xtitle('График синуса')
subplot(2,1,2)
plot(x, cos(x))
xtitle('График косинуса')
polarplot(theta, rho)
theta = 0:0.1:2*%pi;
rho = theta; // уравнение спирали Архимеда
polarplot(theta, rho)
Кардиоида:
theta = 0:0.01:2*%pi;
rho = 1 - cos(theta);
polarplot(theta, rho)
disp(modulo(A, B)); // [1 3 0]
disp(pmodulo(A, B));// [1 3 0]
Полярная роза:
theta = 0:0.01:2*%pi;
rho = cos(3*theta);
polarplot(theta, rho)
Окружность
theta = 0:0.01:2*%pi;
rho = ones(theta); // радиус = 1
polarplot(theta, rho)
loglog(x, y) // логарифмический масштаб по обеим осям
semilogx(x, y) // логарифмический масштаб по X
semilogy(x, y) // логарифмический масштаб по Y
Пример
x = logspace(-1, 3); // создаем массив значений в логарифмическом масштабе
y = exp(x)./x;
loglog(x, y)
xgrid() // добавляем сетку
x = logspace(a, b, n)
где:
a - начальное значение (10^a)
b - конечное значение (10^b)
n - количество точек (опционально, по умолчанию 50)
comet(y)
comet(x, y)
comet(x, fun)
comet(x, y, p)
где:
x, y - векторы координат
fun - функция
p - параметр длины тела кометы (от 0 до 1)
// Создание анимации спирали
t = linspace(0, 10*%pi, 500);
clf();
set(gca(), "isoview", "on"); // равномасштабные оси
comet(t.*sin(t), t.*cos(t))
histplot(n, data [,normalization] [,polygon], <opt_args>)
histplot(x, data [,normalization] [,polygon], <opt_args>)
// Генерация случайных данных
data = rand(1,1000,'normal');
// Построение гистограммы
histplot(20, data);
xtitle('Гистограмма нормального распределения');
// Нормальная случайная матрица
G = randn(3, 3);
pie(x)
// Пример данных
data = [30 20 15 35];
// Построение круговой диаграммы
pie(data);