文章目录
- 转换类型
- 伴随矩阵
转换类型
在Julia中,可以使用内置函数来转换或者调整数据类型。以下是一些常用的数据类型转换方法:
- 转换类型
Int(): 将浮点数或字符串转换为整数。
Float(): 将整数或字符串转换为浮点数。
String(): 将其他类型转换为字符串。
Char(): 将字符串或字符转换为Char类型。
parse(): 将字符串转换为指定类型,如parse(Int, "123")将字符串"123"转换为整数123。
- 取整
取整可以使用几种不同的函数,取决于你想要的取整方式(向下取整、向上取整还是四舍五入)。以下是一些常用的取整函数:
floor(::Type{T}, x):向下取整,返回小于或等于x的最大整数。
ceil(::Type{T}, x):向上取整,返回大于或等于x的最小整数。
round(::Type{T}, x):四舍五入到最接近的整数。
iround(::Type{T}, x):四舍五入到最接近的整数,对于.5的情况会考虑前一个整数。
trunc(::Type{T}, x):向0方向取整,丢弃小数部分。
伴随矩阵
julia> x=[11 22;33 44]
2×2 Matrix{Int64}:
11 22
33 44
下面这段代码对吗?对于二维方阵是对的,因为直接求的是转置矩阵
A'=adjoint(A)
julia> adjoint(x)
2×2 adjoint(::Matrix{Int64}) with eltype Int64:
11 33
22 44
但二维以上就错了!
using LinearAlgebra
k=[10 5 12 ;3 14 21;8 9 11]
adjoint_k=[0 0 0;0 0 0;0 0 0]
for i in range(1,3)
index_i=[1,2,3]
deleteat!(index_i,i)
for j in range(1,3)
global k
index_j=[1,2,3]
deleteat!(index_j,j)
print([index_i,index_j],"=")
println(k[index_i,index_j])
a_ij=(-1)^(i+j)*round(Int,det(k[index_i,index_j]))
adjoint_k[j,i]=a_ij
end
end
println(adjoint_k)
julia> include("e:/learn/learn1.jl")
[[2, 3], [2, 3]]=[14 21; 9 11]
[[2, 3], [1, 3]]=[3 21; 8 11]
[[2, 3], [1, 2]]=[3 14; 8 9]
[[1, 3], [2, 3]]=[5 12; 9 11]
[[1, 3], [1, 3]]=[10 12; 8 11]
[[1, 3], [1, 2]]=[10 5; 8 9]
[[1, 2], [2, 3]]=[5 12; 14 21]
[[1, 2], [1, 3]]=[10 12; 3 21]
[[1, 2], [1, 2]]=[10 5; 3 14]
[-35 53 -63; 135 14 -174; -85 -50 125]