from
spiral_decomp
by Athanasios Makris
Function spiral_decomp decomposes a given matrix into a row vector following spiral order.
|
| [y]=spiral_decomp(A)
|
function [y]=spiral_decomp(A)
% Function spiral_decomp decomposes a given matrix into a row vector
% following spiral order.
%
% INPUTS
% ------
% A = An n x m matrix (real or complex)
%
% OUTPUTS
% -------
% y = An (1 x (n * m) ) vector containing the elements of
% of A taking in spiral order.
%
% COMPATIBILITY
% -------------
% Matlab 7.2 and later
%
% NOTE
% -----------
% This function utilizes function matrix_perimeter.m
%
% EXAMPLE
% -------
%
% >> A=magic(5)
%
% A =
%
% 17 24 1 8 15
% 23 5 7 14 16
% 4 6 13 20 22
% 10 12 19 21 3
% 11 18 25 2 9
%
%
%
% >> x=spiral_decomp(A)
%
% x =
%
% Columns 1 through 14
%
% 17 24 1 8 15 16 22 3 9 2 25 18 11 10
%
% Columns 15 through 25
%
% 4 23 5 7 14 20 21 19 12 6 13
%
%
%
% Author : Athanasios Makris
% Email : makrisathanasios@netscape.net
% Date : 04.08.09 (dd/mm/yy)
% Version : 1.0
if nargin ~=1
error('Function spiral_decomp needs one argument')
end
indx=1;
y=zeros(size(A(:)'));
while ~isempty(A)
[x,A]=matrix_perimeter(A);
n=length(x);
y(indx:indx+n-1)= x;
indx=indx+n;
end
return;
|
|
Contact us at files@mathworks.com