子函数内修改被传递的数组问题

数组的部分被传递给子函数时,如何在子函数内修改被传递的数组的值?
如果我们构建一个数组,将其传递给子函数,在子函数内修改该数组

function fun1(array)
    array = ones(3, 3)
end
function fun2(array)
    for i in 1:3
        for j in 1:3
            array[i, j] = 1.0
        end
    end
end
function fun3(array)
    copyto!(array, ones(3, 3))
end
myArray1 = zeros(3, 3)
myArray2 = zeros(3, 3, 3)

fun1fun2fun3分别作用与myArray1myArray2[1, :, :],其中fun2fun3成功修改了myArray1的值,但没有函数能在传入myArray2[1, :, :]时修改myArray2[1, :, :]的值
所以数组的部分被传递给子函数时,如何在子函数内修改被传递的数组的值?还是只能另辟蹊径?

需要inplace修改,用 .=

1赞

!好,fun4都可以修改了,我会用.+不会用.= :woozy_face:

function fun4(array)
    array .= ones(3, 3)
end

京ICP备17009874号-2