我想使用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
初始化和修改的输出是
[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
这样的实际功能?
答案 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.
很有用。