我有一个巨大的矩阵,并希望排序的列在适当的速度/内存效率。是否可以对Julia中矩阵的列使用就地排序?例如,以下列矩阵为例:
julia> M=Matrix{Int}(3,3);
julia> for i = 1:size(M)[1]
for j = 1:size(M)[2]
M[i,j]=3*(j-1)+i
end
end
julia> M
3×3 Array{Int64,2}:
1 4 7
2 5 8
3 6 9
我想对列使用就地排序来获得矩阵。
3×3 Arra
在Julia中,我希望找到每行中最大值的矩阵的列索引,结果是一个Vector{Int}。下面是我目前的做法(Samples有7列和10,000行):
mxindices = [ i[2] for i in findmax(Samples, dims = 2)[2]][:,1]
这是可行的,但感觉相当笨拙和冗长。不知道有没有更好的办法。
我尝试通过将t = range(0,stop=2*pi,length=101)乘以矩阵[1, 0]来创建一个矩阵数组,如下所示 A = t .* [1 ,0] 但这会产生错误ERROR: LoadError: DimensionMismatch("arrays could not be broadcast to a common size")。我希望将t的每个标量或元素与向量[1 , 0]的元素进行元素乘法(就t而言),本质上是执行元素的标量矩阵乘积。 我这样做的原因是因为我希望以后能够将A中找到的每个列向量与另一个常量矩阵M相乘。在Julia v1.1中如何做到这一点?
我想检查我的DataFrame是否包含我指定的所有列。当然,我可以用下面的代码来完成它,但我觉得应该可以在一行中实现。
using DataFrames
bools = Array{Bool}([])
df = DataFrame(A=[1,2], B=[3,4], C=[5,6])
for name in ["A", "B"]
push!(bools, name ∈ names(df))
end
false ∉ bools
我有一个布尔数组(来自以前的计算),我想从几个矩阵中选择相关的行。这就是为什么我需要正确的索引数组(稍后重用)的原因。这在Matlab和python中很容易,但我并不认为正确的julian方法是正确的。
我知道DataFrames,但我希望找到一种标准的矩阵和数组方法来实现这一点。
在Matlab中,我会说:
n= 9; temp= 1:n; A= 1.0 + temp;
someTest= mod(temp,2) == 0; % just a substitute of a more complex case
% now I have both someTest and A!
inds=
我试着用朱莉娅中的C函数作为参数,我调用函数,但是出了问题。下面是一个简单的例子:
C中的:
typedef struct {
int width;
int height;
int stride;
float* elements;
} Matriz;
是存储矩阵的简单结构,包含width、heigth、stride和elements字段。
float GetElm(const Matriz A, int row, int col)
{
return (row < A.height && col < A.width ?
如果为您提供索引,则会有多个问题涉及删除Julia Matrix中的特定行。 How to delete a row of matrix in julia Julia: delete rows and columns from an array or matix 我所需要的稍有不同,因为我只想在所有行的值都为零的情况下删除Matrix的一行。当您想要删除给定特定条件或函数的行时,也许您可以推广我的问题。这可能是一连串的事情,sum(row .!= 0) == 0 我为列找到了what I need here的确切转置,但我不能使其适用于行。我试过了: a[vec(mapslices(col
W为5×5矩阵,项为2×2矩阵,例如: S0=reshape([2,2,4,4], (2, 2))
W=reshape(Any[S0 for i in 1:25],(5,5)) A是一个2×2×2的张量,例如: A= reshape([1,1,1,1,3,3,3,3], (2, 2, 2)) 我想把W中S0的第二个索引和A的第二个索引相加,我是说, using Einsum
@einsum ans[a,b,c,d,e]:=W[a,b][c,i]*A[d,i,e] 但是出现了一个错误:MethodError: Cannot `convert` an object of type Expr to
正如标题所建议的那样,我需要将某个矩阵的行按它的一列排序,如果可能的话,最好是就位。所述列包含Strings (数组类型为Array{Union{Float64,String}}),理想情况下,行应以字母顺序结束,由此列确定。线
sorted_rows = sort!(data, by = i -> data[i,2]),
其中data是我的矩阵,产生错误ERROR: LoadError: UndefKeywordError: keyword argument dims not assigned。指定要排序的矩阵的哪一部分,并添加参数dims=2 (假设参数是我想要排序的维度),即
so