Самый простой способ создания вектора с равномерным шагом.
начальное_значение:шаг:конечное_значение
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('График косинуса')
title('А1-4',...
'fontsize', размер шрифта,...
'position', [xmax ymax]); 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))
вариант "зацикливания"
for i=1:5
clf(4);
comet(x,y3,0.2)
sleep(1000)
end
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);