文章目录
- 转换类型
- 伴随矩阵
转换类型
在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 2233 44
下面这段代码对吗?对于二维方阵是对的,因为直接求的是转置矩阵
A'=adjoint(A)
julia> adjoint(x)
2×2 adjoint(::Matrix{Int64}) with eltype Int64:11 3322 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 kindex_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_ijend
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]