ベクトル→マトリクス
ベクトルから行列に変換したかった.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