Julia:与数组的布尔比较

Ada*_*dam 8 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)
Run Code Online (Sandbox Code Playgroud)

我在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
Run Code Online (Sandbox Code Playgroud)

Mat*_* B. 8

这是运营商优先权的问题. &Julia中的优先级高于Matlab中的优先级.只需绕过括号:

test = (o .< mat[:,2]) .& (mat[:,1] .== 65)
Run Code Online (Sandbox Code Playgroud)

有关更多详细信息,请参阅手册中与Matlab的值得注意的差异(并且值得阅读其他差异).