Generating the Ulam Spiral
2 views (last 30 days)
Show older comments
This short spiral(n) function is supposed to generate a number spiral centered at one. For the most part, I understand the code but I can't seem to grasp why the polynomial m^2-m+1 is used.
function S = spiral(n)
%SPIRAL SPIRAL(n) is an n-by-n matrix with elements
% 1:n^2 arranged in a rectangular spiral pattern.
S = [];
for m = 1:n
S = rot90(S,2);
S(m,m) = 0;
p = m^2-m+1;
v = (m-1:-1:0);
S(:,m) = p-v';
S(m,:) = p+v;
end
if mod(n,2)==1
S = rot90(S,2);
end
Any ideas?
0 Comments
Accepted Answer
More Answers (0)
See Also
Categories
Find more on Polynomials 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!