scalecol.m

来自「计算水声传播的快速场(FFP)程序」· M 代码 · 共 23 行

M
23
字号
function B = scalecol( A, mults )

% Scales each column of A by the respective multiplier in mults
% Equivalent to B = A * diag( mults )
% except the fult matrix doesn't need to be constructed
% useage: B = scalecol( A, mults )

mults = mults( : );  % make sure mults is a row vector
B     = zeros( size( A ) );

if ndims( A ) == 1
    B( : ) = mults .* A( : );
end

if ndims( A ) == 2
    Ncols = length( mults );
    B = full( A * spdiags( mults, 0, Ncols, Ncols ) );
    %B = A * diag( mults' );    % generates memory error, apparently trying to allocate diag( mults' );
    %for icol = 1: Ncols
    %    B( :, icol ) = mults( icol ) * A( :, icol );
    %end
end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?