ベクトル→マトリクス

ベクトルから行列に変換したかった.Matlab だと vec2mat という便利な関数があるらしいと聞いて(ネットで調べて知った)使ってみようと思ったが,なんと持っていない Toolbox のものだった.またか….まあ,機能的にも複雑なことはないので,ないなら作ればいいだけの話.というわけで,ためしに作ってみた.怪しい設計だが….

function [A] = vec2mat(vector,matcolumn);
%%function [A] = vec2mat(vector,matcolumn);
%This function convert column vector to matrix, so return matrix A. 
%vector:input column vector.
%matcolumn:the number of columns which the matrix A have.
%
%%Example
%A=[1;2;3;4;5;6;7;8;9]';
%vec2mat(A,3)
%ans =
%
%     1     4     7
%     2     5     8
%     3     6     9

if nargin ~=2;
    error('Check the number of arguments.');
end

B=vector;

check=size(B);
if check(1)==1 | check(2) ~=1
    error('This function is for only column vector.');
end

if matcolumn <= 0
    error('The number of colomuns is only positive.');
end

m=matcolumn;
N=length(B);
if mod(N,m) ~= 0
    error('This number of columns is not available. You shoud choose a column number which can get mod(N,m) = 0.');
end

n=N/m;
A=B(1:n);
for i=2:m
	A=[A,B(((i-1)*n+1):(n*i))];
end