X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?p=CreaPhase.git;a=blobdiff_plain;f=octave_packages%2Fcommunications-1.1.1%2Fvec2mat.m;fp=octave_packages%2Fcommunications-1.1.1%2Fvec2mat.m;h=123d143ef013f7f581b5b10d24391cabb47edc60;hp=0000000000000000000000000000000000000000;hb=c880e8788dfc484bf23ce13fa2787f2c6bca4863;hpb=1705066eceaaea976f010f669ce8e972f3734b05 diff --git a/octave_packages/communications-1.1.1/vec2mat.m b/octave_packages/communications-1.1.1/vec2mat.m new file mode 100644 index 0000000..123d143 --- /dev/null +++ b/octave_packages/communications-1.1.1/vec2mat.m @@ -0,0 +1,56 @@ +## Copyright (C) 2001 Laurent Mazet +## +## This program is free software; you can redistribute it and/or modify it under +## the terms of the GNU General Public License as published by the Free Software +## Foundation; either version 3 of the License, or (at your option) any later +## version. +## +## This program is distributed in the hope that it will be useful, but WITHOUT +## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +## details. +## +## You should have received a copy of the GNU General Public License along with +## this program; if not, see . + +## -*- texinfo -*- +## @deftypefn {Function File} {@var{m} = } vec2mat (@var{v}, @var{c}) +## @deftypefnx {Function File} {@var{m} = } vec2mat (@var{v}, @var{c}, @var{d}) +## @deftypefnx {Function File} {[@var{m}, @var{add}] = } vec2mat (@dots{}) +## +## Converts the vector @var{v} into a @var{c} column matrix with row priority +## arrangement and with the final column padded with the value @var{d} to the +## correct length. By default @var{d} is 0. The amount of padding added to +## the matrix is returned in @var{add}. +## @end deftypefn + +## 2001-02-02 +## initial release + +function [M, d] = vec2mat (V, c, val) + + switch (nargin) + case 1, + M = V; + return; + case 2, + val = 0; + case 3, + val = val; + otherwise + error ("usage: [M, add] = vec2mat (V, c [, d])"); + endswitch + + V = V.'; + V = V(:); + + r = ceil (length (V) / c); + + d = r * c - length (V); + if (d != 0) + V = [ V ; val*ones(d, 1) ]; + endif + + M = reshape (V, c, r).'; + +endfunction