최근 몇 년 동안 Golang은 특히 일부 대기업의 비즈니스 개발을 위한 주요 언어 중 하나로 프로그래머들 사이에서 계속해서 인기를 얻고 존경을 받고 있습니다. 배열은 데이터의 기본 구조로 프로그래밍에서 자주 사용되는 타입이다. 이 기사에서는 고전적인 Golang 배열 전치 방법을 소개합니다.
배열 전치란 행렬의 행과 열을 바꾸는 것입니다. 예를 들어, 매트릭스 는 요소 유형을 나타냅니다. 예:
1 2 3 4 5 6 7 8 9
Golang 배열 전치 구현
1 4 7 2 5 8 3 6 9
먼저 2차원 배열을 정의하여 원본 행렬을 표현할 수 있습니다.
var array [n]Type
다음으로 transpose
함수를 정의해야 합니다. code> 를 사용하여 행렬 전치를 구현합니다. 이 함수는 2차원 배열 a
와 해당 행 및 열 번호 m
및 n
을 전달해야 합니다. 함수 구현은 다음과 같습니다. n
表示数组长度,Type
表示元素类型。例如:
var a [5]int // 定义一个长度为5的int数组 a[0] = 1 // 给第0个元素赋值为1
对于一个M*N的矩阵,我们可以用二维数组来表示。在Golang中,二维数组的定义如下:
var array [m][n]Type
可以先定义一个二维数组来表示原始矩阵:
var matrix = [3][3]int{ {1, 2, 3}, {4, 5, 6}, {7, 8, 9}, }
接下来,我们需要定义一个函数transpose
来实现矩阵转置。该函数需要传入一个二维数组a
以及其行列数m
和n
。函数的实现如下:
func transpose(a [][]int, m, n int) [][]int { // 创建一个新的n*m的数组 b := make([][]int, n) for i := 0; i < n; i++ { b[i] = make([]int, m) } // 将a的行与b的列对应 for i := 0; i < n; i++ { for j := 0; j < m; j++ { b[i][j] = a[j][i] } } return b }
在函数中,我们先创建了一个n*m
的二维数组b
,并对其每个元素进行了初始化。接着,我们对原始矩阵a
进行遍历,并将a
的行与b
的列进行对应,将结果存入b
中。最后,函数返回了转置后的矩阵b
func main() { matrix := [3][3]int{ {1, 2, 3}, {4, 5, 6}, {7, 8, 9}, } // 转置前 fmt.Println(matrix) // 转置后 transposedMatrix := transpose(matrix[:], 3, 3) fmt.Println(transposedMatrix) }함수에서는 먼저
n*m
의 2차원 배열 b
를 만들고 각 요소를 초기화합니다. 다음으로, 원래 행렬 a
를 탐색하고 a
의 행을 b
의 열과 일치시키고 결과를 b에 저장합니다.
인. 마지막으로 함수는 전치된 행렬 b
를 반환합니다. 메인 함수에서 이 함수를 호출하여 배열 전치를 구현할 수 있습니다. [[1 2 3] [4 5 6] [7 8 9]] [[1 4 7] [2 5 8] [3 6 9]]출력 결과는 다음과 같습니다.
위 내용은 골랭 배열 전치의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!