gpt4 book ai didi

julia - 复制除一列以外的矩阵的有效方法

转载 作者:行者123 更新时间:2023-12-01 22:49:48 24 4
gpt4 key购买 nike

考虑一个不需要第三列的矩阵:

X = zeros(Int64, (4, 3));
X[:, 1] = [0, 0, 1, 1];
X[:, 2] = [1, 2, 1, 2];
julia> X
4×3 Matrix{Int64}:
0 1 0
0 2 0
1 1 0
1 2 0

因此,您想要选择(复制)第 3 列以外的所有内容:

4×2 Matrix{Int64}:
0 1
0 2
1 1
1 2

有没有简写的方式来表达这个?

这些工作,但当你有大量的列时感觉不切实际:

X[:, [1, 2]]
X[:, sort(collect(setdiff(Set([1, 2, 3]), Set([3]))))]

最佳答案

有很多方法可以做到这一点。下面是一个解决方案,您可以在其中表达要包括的列号范围:

X = zeros(Int64, (8, 3));
X[:, 1] = [0, 0, 0, 0, 1, 1, 1, 1];
X[:, 2] = [1, 1, 2, 2, 1, 1, 2, 2];

return X[:,1:2] #Columns 1 through 2 are being directly included.

或者,您可以表达您想要排除的内容,这可能是代码的更广泛有用的版本:

return X[:, 1:end .!= 3] #column number 3 is being directly excluded.

两者都会返回:

8×2 Matrix{Int64}:
0 1
0 1
0 2
0 2
1 1
1 1
1 2
1 2

关于julia - 复制除一列以外的矩阵的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74633790/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com