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

时间:2019-03-07 21:18:10

标签: julia

我想使用row零(在这种情况下为column)的MatrixFloat64中创建所有值,而无需借助手动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

初始化和修改的输出是

[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

理解可能可以使for loop看起来更整洁,但这仅仅是化妆品。我想知道是否可以使用像fill!zero这样的实际功能?

1 个答案:

答案 0 :(得分:4)

仅将数组索引与:一起使用,以选择沿您选择的维度和.=的所有条目。

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

有关索引数组的更多信息,您可能会发现阅读the relevant manual entry.

很有用。