Version 3.0.0 (1.5 KB) by Moreno, M.
Returns the quasi-euclidean norm of an array in 1, 2 or 3 dimensions.
Updated 20 Mar 2022
Calling [x, e] = qnorm(X, dim) returns the quasi-euclidean norm of X along its rows or columns for dim = 1 or 2, respectively, and the calculation error compared to the Euclidean norm. The values are derived from the information of neighbourhoods using 1, 2 or 3D distance transforms in (1), (2 2) or (3 3 3) voxel models.
The coefficients or weights are calculated seeking to maximise the norm of the vector X (approaching the L2 norm value within a small error). This makes this function a good approximation for the euclidean distance without the need for square roots or powers.
An example of the use of this function is:
n = 200;
[x, y, z] = meshgrid(-1 : 2 / (n - 1) : 1);
d = zeros(size(x));
for i = 1 : n
for j = 1 : n
for k = 1 : n
d(i, j, k) = qnorm([x(i, j, k) y(i, j, k) z(i, j, k)]);
s = isosurface(x, y, z, d, 0.5);
p = patch(s);
isonormals(x, y, z, d, p)
set(p, 'FaceColor', [0.85 0.85 0.85])
set(p, 'EdgeColor', 'none')
Moreno, M. (2023). Quasi-Euclidean Norm (https://www.mathworks.com/matlabcentral/fileexchange/108209-quasi-euclidean-norm), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Created with R2022a
Compatible with any release
Platform CompatibilityWindows macOS Linux
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!
Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.