Plotting the set of all unit vectors in different norms efficiently?
5 views (last 30 days)
Show older comments
I'm trying to plot the set of all unit vectors in different norms and this is the code I've managed to make so far, the issue is that using randn is going to give me lots of redundant points and I'm looking for a cleaner way to plot this without having to rely on randn. I still want the values to be represented as vectors so that I can later apply transformations on them. Any ideas?
function plotUnitNorm(normType)
X = randn(10000,2);
if(strcmp(normType,'inf'))
p_norm = max(abs(X), [], 2);
end
if(strcmp(normType,'1'))
p_norm = sum(abs(X),2);
end
if(strcmp(normType,'2'))
p_norm = sum(abs(X).^2,2).^(1/2);
end
Xn = bsxfun(@times, X, 1./p_norm);
figure(1); scatter(Xn(:, 1), Xn(:, 2), '.');
end
0 Comments
Answers (1)
Thiago Henrique Gomes Lobato
on 9 Feb 2020
Just make a meshgrid and convert it to a vector
%X = randn(10000,2);
step = 0.02;
[Xi,Yi] = meshgrid(-1:step:1,-1:step:1);
X = [Xi(1:end)',Yi(1:end)'];
if(strcmp(normType,'inf'))
p_norm = max(abs(X), [], 2);
end
...
See Also
Categories
Find more on Annotations in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!