You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: spm_TVdenoise.m
    path of file: ./repos/spm/toolbox/Spatial
    
    the code of the file until where you have to start completion: function y = spm_TVdenoise(x, vox, lambdap, lambdal, nit, y)
% Joint total variation denoising of 3D volumes
% FORMAT y = spm_TVdenoise(x, vox, lambdap, lambdal, nit, y)
% x        - a 3D or 4D array/gpuArray of floating point data
% vox      - voxel sizes [1 1 1]
% lambdap  - regularisation of each channel (along 4th dimension) [1]
% lambdal  - reciprocals of variances (along 4th dimension) [1]

    
function y = spm_TVdenoise(x, vox, lambdap, lambdal, nit, y)
% Joint total variation denoising of 3D volumes
% FORMAT y = spm_TVdenoise(x, vox, lambdap, lambdal, nit, y)
% x        - a 3D or 4D array/gpuArray of floating point data
% vox      - voxel sizes [1 1 1]
% lambdap  - regularisation of each channel (along 4th dimension) [1]
% lambdal  - reciprocals of variances (along 4th dimension) [1]
% nit      - number of iterations [100]
% y        - starting estimates [x]
%__________________________________________________________________________

% John Ashburner
% Copyright (C) 2023 Wellcome Centre for Human Neuroimaging


if nargin < 2, vox     = single([1,1,1]); end