2026a

# reverse


对数据进行翻转,创建副本

# 语法

reverse(v, start=1, stop=length(v))
reverse(A; dims=:)
reverse(s)

# 说明

reverse(v, start=1, stop=length(v)) 返回从开始到停止翻转的向量或元组 v 的副本,但不改变向量或元组的原始数据。 示例


reverse(A; dims=:) 返回根据维度 dims 翻转矩阵 A 的副本,但不改变矩阵的原始数据。 示例


reverse(s) 返回翻转字符串 s 的副本,但不改变字符串的原始数据。 示例

# 示例

根据索引号翻转

创建一个向量 A。

A = Vector(1:5)
5-element Vector{Int64}:
1
2
3
4
5

开始和结束索引号为空时,向量 A 全部翻转。

reverse(A)
5-element Vector{Int64}:
5
4
3
2
1

向量 A 中的数据不变。

A
5-element Vector{Int64}:
1
2
3
4
5

翻转向量 A 中索引是 1 到 4 的数据。

reverse(A, 1, 4)
5-element Vector{Int64}:
4
3
2
1
5

翻转向量 A 中索引是 3 到 5 的数据。

reverse(A, 3, 5)
5-element Vector{Int64}:
1
2
5
4
3
根据维度翻转

创建矩阵 B。

B = Int64[1 2; 3 4]
2×2 Matrix{Int64}:
1  2
3  4

根据维度 2 进行翻转,即矩阵每行进行翻转。

reverse(B, dims=2)
2×2 Matrix{Int64}:
2  1
4  3

dims 为空时,即矩阵每行和每列都进行翻转。

reverse(B)
2×2 Matrix{Int64}:
4  3
2  1
翻转字符向量

对字符串直接翻转。

A = "no word, no bond, row on.";
B = reverse(A)
B = 
".no wor ,dnob on ,drow on"
翻转矩阵
using TyMath
A = diagm([100, 200, 300])
A = 
3×3 Matrix{Int64}:
 100    0    0
   0  200    0
   0    0  300

沿第一个维度翻转 A。

B = reverse(A,dims = 1)
B = 
3×3 Matrix{Int64}:
   0    0  300
   0  200    0
 100    0    0

现在,沿第二个维度翻转 A。

B = reverse(A,dims = 2)
B = 
3×3 Matrix{Int64}:
   0    0  100
   0  200    0
 300    0    0
翻转 N 维数组
A = zeros(Int, 1, 3, 2)
A[:, :, 1] = [1 2 3]
A[:, :, 2] = [4 5 6]
A = 
1×3×2 Array{Int64, 3}:
[:, :, 1] =
 1  2  3

[:, :, 2] =
 4  5  6

沿第二个维度翻转 A。

B = reverse(A,dims = 2)
B = 
1×3×2 Array{Int64, 3}:
[:, :, 1] =
 3  2  1

[:, :, 2] =
 6  5  4

现在,沿第三个维度翻转 A。

B = reverse(A,dims = 3)
B = 
1×3×2 Array{Int64, 3}:
[:, :, 1] =
 4  5  6

[:, :, 2] =
 1  2  3
翻转行向量

创建一个行向量。

A = 1:10
A = 
1:10

使用 reverse 可沿水平方向翻转 A 的元素。

B = reverse(A)
B = 
10:-1:1

B 中元素的顺序与 A 中元素的顺序相反。

翻转列向量

创建一个列向量。

A = reshape(1:10, :, 1)

使用 reverse 可沿垂直方向翻转 A 的元素。

B = reverse(A)
B = 
10×1 Matrix{Int64}:
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1

B 中元素的顺序与 A 中元素的顺序相反。

翻转多维数组

创建一个多维数组。

A = cat([1 2; 3 4], [5 6; 7 8]; dims=3)
A = 
2×2×2 Array{Int64, 3}:
[:, :, 1] =
 1  2
 3  4

[:, :, 2] =
 5  6
 7  8

A 是大小为 2×2×2 的数组。

沿水平方向翻转 A 的每页上的元素。

B = reverse(A,dims = 2)
B = 
2×2×2 Array{Int64, 3}:
[:, :, 1] =
 2  1
 4  3

[:, :, 2] =
 6  5
 8  7

结果 B 的大小与 A 相同,但翻转了元素的水平顺序。该操作独立翻转每一页上的元素。

# 输入参数

v - 翻转向量
向量 | 元组

v 是需要被翻转的数据,指定为向量、元组。

数据类型: Int8 | Int16 | Int32 | Int64 | Int128 | UInt8 | UInt16 | UInt32 | UInt64 | UInt128 | Float16 | Float32 | Float64 | Bool | Char | String

start,end - 开始,停止的索引号
正整数

start,end 是被翻转的数据开始和停止的索引号,必须为正整数。

A - 翻转矩阵
矩阵

A 是需要被翻转的数据,指定为矩阵。

dims - 翻转维度
正整数 | 元组 | :

dims 是翻转维度,可以是单个正整数、元组、:(所有维度)。

s - 翻转字符串
字符串

s 是待翻转的字符串数据。

# 另请参阅

reverse! | reverseind