Julia 朱莉娅:与数组的布尔比较

Julia 朱莉娅:与数组的布尔比较,julia,Julia,我有一个关于Julia中布尔比较的简单问题。如何将以下Matlab代码翻译成Julia Matlab: % create parameters o = -3; mat = [65 -4; 65 -3; 65 -2] % determine which rows of matrix have column 2 less than o AND column 1 equal to 65. result = (o < mat(:,2) & mat(:,1) == 65) %创建参数 o

我有一个关于Julia中布尔比较的简单问题。如何将以下Matlab代码翻译成Julia

Matlab:

% create parameters
o = -3;
mat = [65 -4; 65 -3; 65 -2]

% determine which rows of matrix have column 2 less than o AND column 1 equal to 65.
result = (o < mat(:,2) & mat(:,1) == 65)
%创建参数
o=-3;
mat=[65-4;65-3;65-2]
%确定矩阵的哪些行的第2列小于o,第1列等于65。
结果=(o
我在朱莉娅身上试过以下方法:

# create parameters
o = -3
mat = zeros(3,2)
mat[:,1] = 65
mat[1,2] = -4
mat[2,2] = -3
mat[3,2] = -2
mat

# attempt to create desired result
o .< mat[:,2]                                # this part works
mat[:,1] .== 65                              # this part works
test = (o .< mat[:,2] && mat[:,1] .== 65)    # doesn't work
test = (o .< mat[:,2] .& mat[:,1] .== 65)    # doesn't work
test = (o .< mat[:,2] & mat[:,1] .== 65)     # doesn't work
julia> mat = [65 -4; 65 -3; 65 -2]
3x2 Array{Int64,2}:
65  -4
65  -3
65  -2
#创建参数
o=-3
mat=零(3,2)
mat[:,1]=65
mat[1,2]=-4
mat[2,2]=-3
mat[3,2]=-2
垫子
#尝试创建所需的结果
这部分工作正常
mat[:,1]。==65#这部分有效
测试=(o.
这是运算符优先级的问题<代码>&
在Julia中的优先级高于在Matlab中的优先级。只要把括号换一下:

test = (o .< mat[:,2]) .& (mat[:,1] .== 65)
test=(o.

有关更多详细信息,请参阅手册中的(其他差异也值得一读)。

注意,您可以在Julia中使用相同的数组创建语法:

# create parameters
o = -3
mat = zeros(3,2)
mat[:,1] = 65
mat[1,2] = -4
mat[2,2] = -3
mat[3,2] = -2
mat

# attempt to create desired result
o .< mat[:,2]                                # this part works
mat[:,1] .== 65                              # this part works
test = (o .< mat[:,2] && mat[:,1] .== 65)    # doesn't work
test = (o .< mat[:,2] .& mat[:,1] .== 65)    # doesn't work
test = (o .< mat[:,2] & mat[:,1] .== 65)     # doesn't work
julia> mat = [65 -4; 65 -3; 65 -2]
3x2 Array{Int64,2}:
65  -4
65  -3
65  -2
您还可以使用
find
获取结果索引的列表:

o = -3
test = (o .< mat[:,2]) & (mat[:,1] .== 65)

julia> find(test)
1-element Array{Int64,1}:
3
o=-3
测试=(o.查找(测试)
一元数组{Int64,1}:
3.