使矩阵的行或列全为零 [Julia]

Cha*_*own 1 julia

我想在所有的a值rowcolumn一的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可以使用的实际功能?

hck*_*ckr 5

只需使用数组索引 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)

有关索引数组的更多信息,您可能会发现阅读相关的手册条目很有用