ssa

Форк
0
/
dense.go 
54 строки · 1.2 Кб
1
package oss
2

3
import "gonum.org/v1/gonum/mat"
4

5
// минимальное значение элемента матрицы
6
func MinDense(matr mat.Dense) float64 {
7
	var min float64 = matr.At(0, 0)
8
	r, c := matr.Dims()
9
	for i := 0; i < r; i++ {
10
		for j := 0; j < c; j++ {
11
			if min > matr.At(i, j) {
12
				min = matr.At(i, j)
13
			}
14
		}
15
	}
16
	return min
17
}
18

19
// максимальное значение элемента матрицы
20
func MaxDense(matr mat.Dense) float64 {
21
	var max float64 = matr.At(0, 0)
22
	r, c := matr.Dims()
23
	for i := 0; i < r; i++ {
24
		for j := 0; j < c; j++ {
25
			if max < matr.At(i, j) {
26
				max = matr.At(i, j)
27
			}
28
		}
29
	}
30
	return max
31
}
32

33
// Makes a dense matrix of size r*c and fills it with a user-defined function.
34
func MakeMatrix(r int, c int, value func(i, j int) float64) *mat.Dense {
35
	data := make([]float64, r*c)
36
	for i := 0; i < r; i++ {
37
		for j := 0; j < c; j++ {
38
			data[c*i+j] = value(i, j)
39
		}
40
	}
41
	return mat.NewDense(r, c, data)
42
}
43

44
// Поиск максимального значения массива и его индекс
45
func MaxArrFloat64(array []float64) (valueMax float64, indexMax int) {
46
	valueMax = array[0]
47
	for ind, val := range array {
48
		if val >= valueMax {
49
			valueMax = val
50
			indexMax = ind
51
		}
52
	}
53
	return valueMax, indexMax
54
}
55

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.