File Exchange

image thumbnail

Vector norm

version 1.0.0.0 (895 Bytes) by Winston Smith
Returns the vector norm for a specified dimension (e.g. row/col) of a matrix

1 Download

Updated 26 Apr 2006

No License

% VNORM - Return the vector norm along specified dimension of A
%
% VNORM(A) returns the 2-norm along the first non-singleton
% dimension of A
% VNORM(A,dim) return the 2-norm along the dimension 'dim'
% VNORM(A,dim,normtype) returns the norm specified by normtype
% along the dimension 'dim'
% VNORM(A,[],normtype) returns the norm specified by normtype along
% the first non-singleton dimension of A
%
% normtype may be one of {inf,-inf,positive integer}.
% For a given vector, v, these norms are defined as
% inf: max(abs(v))
% -inf: min(abs(v))
% p (where p is a positive integer): sum(abs(v).^p)^(1/p)
%
% Examples:
% A = [8 1 6; 3 5 7; 4 -9 2];
%
% %Columnwise 2-norm (Euclidean norm)
% vnorm(A,1) = [9.4340 10.3441 9.4340];
% vnorm(A,[],2) % Same as above (since first non-singleton dimensions
% % is columnwise and default norm is 2-norm.
% vnorm(A,[],[])% Again, same as above
%
% % Row-wise maximum of absolute values
% vnorm(A,2,inf) = [8 7 9]';
%
% % Columnwise minimum of absolute values
% vnorm(A,[],-inf) = [3 1 2];
%
% % Error: Use the inf type and not the string 'inf'
% vnorm(A,[],'inf') % Wrong
% vnorm(A,[],inf) % Correct

Cite As

Winston Smith (2020). Vector norm (https://www.mathworks.com/matlabcentral/fileexchange/10708-vector-norm), MATLAB Central File Exchange. Retrieved .

Comments and Ratings (1)

John D'Errico

Minor points - the 1-norm should also be a special case for speed. I'd also suggest some cleanup on the help, i.e., some users might not otherwise know that the infinity norm will select out the maximum element, or what -inf does. On the other hand, whenever I see a matlab idiom for something I've done many times in the past, I recognize value in it. Well done.

Updates

1.0.0.0

Improved help with examples and special cased the 1-norm.

MATLAB Release Compatibility
Created with R14SP3
Compatible with any release
Platform Compatibility
Windows macOS Linux
Tags Add Tags