Добро пожаловать в Engee
Вызов функций
Цель: Научиться работать с функциями, которые возвращают одно или несколько выходных значений.
using CSV, DataFrames;
cd(@__DIR__);
data = CSV.read("datafile.csv", DataFrame, header=0)
v1 = data[:,3];
v2 = data[:,4];
display(data)
Задача 1
Для матриц функция size возвращает массив из двух элементов, в первом из которых будет количество строк, а во втором – количество столбцов матрицы.
s = size(x)
dsize, содержащую размеры переменной data.
Подсказка
Передайте переменную data в функцию size.
Решение
dsize = size(data)
Задача 2
Вывод функции size можно разместить в одном едином векторе, а можно распределить на несколько переменных. Чтобы присвоить этот ряд значений нескольким переменным, заключите их в круглые скобки (( )).
(xrow,xcol) = size(x)
dr и dc, содержащие количество строк и столбцов матрицы data.
Подсказка
Вызовите функцию size с двумя выходными переменными. Слева от знака равенства должно находиться выражение (dr,dc).
Решение
(dr,dc) = size(data)
Задача 3
Вы можете запросить не только максимальное значение вектора, но и его индекс в матрице при помощи функции findmax. Первое значение, которое возвращает функция findmax – это значение максимального элемента входного вектора. Второе выходное значение, в случае запроса двух выходных параметров, будет содержать индекс места, где этот максимальный элемент расположен в матрице (либо список индексов, если максимальный элемент встречается несколько раз).
(xMax,idx) = findmax(x)
vMax и ivMax, в которых будет храниться максимальное значение вектора v1 и индекс элемента(ов), где это значение расположено.
Подсказка
Передайте переменную v1 в функцию findmax. По левую сторону от знака равенства должно находиться выражение (vMax,ivMax).
Решение
(vMax, ivMax) = findmax(v1)
Задача 4*
Если вам нужен только второй возвращаемый результат функции, то первую переменную можно не писать. Для этого на ее место ставится символ тильда (~), чтобы первый результат выполнения функции не присваивался никакой переменной.
Например, чтобы найти только индекс максимального элемента в векторе density, составленном из элементов второго столбца таблицы data, нужно выполнить следующий код:
density = data[:,2]
(~,ivMax) = findmax(density)
ivMax
Само значение максимального элемента можно найти, обращаясь к нему по индексу:
densityMax = density[ivMax]
Попробуйте таким же образом получить индекс минимального элемента вектора v2. Затем воспользуйтесь этим индексом, чтобы получить значение элемента из вектора density.