我想在所有的a值row或column一的Matrix零级的(Float64在这种情况下),而不诉诸for循环手册。
fill!并zero在整个矩阵上工作,但不在单个列或行上工作(至少我的尝试失败了......即,fill!(tester[:,1],0.0)不起作用。
这是手动方法的示例
tester = [[22.2 33.3 44.4]; [44.4 55.5 66.6]; [77.7 88.8 99.9] ]
for i = 1:size(tester,1)
tester[i,1] = 0.0
end
Run Code Online (Sandbox Code Playgroud)
初始化和修改的输出是
[22.2 33.3 44.4; 44.4 55.5 66.6; 77.7 88.8 99.9] <-- Initial matrix
[0.0 33.3 44.4; 0.0 55.5 66.6; 0.0 88.8 99.9] <-- Correct change
Run Code Online (Sandbox Code Playgroud)
领悟也许可以用来让for loop看起来更整洁一点,但这只是化妆品。我想知道是否有类似fill!或zero可以使用的实际功能?
只需使用数组索引 with:选择沿您选择的维度的所有条目 和.=。
julia> tester = [22.2 33.3 44.4; 44.4 55.5 66.6; 77.7 88.8 99.9];
julia> tester[:,1] .= 0.0;
julia> tester
3×3 Array{Float64,2}:
0.0 33.3 44.4
0.0 55.5 66.6
0.0 88.8 99.9
Run Code Online (Sandbox Code Playgroud)
有关索引数组的更多信息,您可能会发现阅读相关的手册条目很有用。