X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?p=CreaPhase.git;a=blobdiff_plain;f=octave_packages%2Fstatistics-1.1.3%2Ftblread.m;fp=octave_packages%2Fstatistics-1.1.3%2Ftblread.m;h=01ea43ba943f61f4112e4347ab18103472ca0a3b;hp=0000000000000000000000000000000000000000;hb=f5f7a74bd8a4900f0b797da6783be80e11a68d86;hpb=1705066eceaaea976f010f669ce8e972f3734b05 diff --git a/octave_packages/statistics-1.1.3/tblread.m b/octave_packages/statistics-1.1.3/tblread.m new file mode 100644 index 0000000..01ea43b --- /dev/null +++ b/octave_packages/statistics-1.1.3/tblread.m @@ -0,0 +1,97 @@ +## Copyright (C) 2008 Bill Denney +## +## 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{data}, @var{varnames}, @var{casenames}] =} tblread (@var{filename}) +## @deftypefnx {Function File} {[@var{data}, @var{varnames}, @var{casenames}] =} tblread (@var{filename}, @var{delimeter}) +## Read tabular data from an ascii file. +## +## @var{data} is read from an ascii data file named @var{filename} with +## an optional @var{delimeter}. The delimeter may be any single +## character or +## @itemize +## @item "space" " " (default) +## @item "tab" "\t" +## @item "comma" "," +## @item "semi" ";" +## @item "bar" "|" +## @end itemize +## +## The @var{data} is read starting at cell (2,2) where the +## @var{varnames} form a char matrix from the first row (starting at +## (1,2)) vertically concatenated, and the @var{casenames} form a char +## matrix read from the first column (starting at (2,1)) vertically +## concatenated. +## @seealso{tblwrite, csv2cell, cell2csv} +## @end deftypefn + +function [data, varnames, casenames] = tblread (f="", d=" ") + + ## Check arguments + if nargin < 1 || nargin > 2 + print_usage (); + endif + if isempty (f) + ## FIXME: open a file dialog box in this case when a file dialog box + ## becomes available + error ("tblread: filename must be given") + endif + [d err] = tbl_delim (d); + if ! isempty (err) + error ("tblread: %s", err) + endif + + d = csv2cell (f, d); + data = cell2mat (d(2:end, 2:end)); + varnames = strvcat (d(1,2:end)); + casenames = strvcat (d(2:end,1)); + +endfunction + +## Tests +%!shared d, v, c +%! d = [1 2;3 4]; +%! v = ["a ";"bc"]; +%! c = ["de";"f "]; +%!test +%! [dt vt ct] = tblread ("tblread-space.dat"); +%! assert (dt, d); +%! assert (vt, v); +%! assert (ct, c); +%!test +%! [dt vt ct] = tblread ("tblread-space.dat", " "); +%! assert (dt, d); +%! assert (vt, v); +%! assert (ct, c); +%!test +%! [dt vt ct] = tblread ("tblread-space.dat", "space"); +%! assert (dt, d); +%! assert (vt, v); +%! assert (ct, c); +%!test +%! [dt vt ct] = tblread ("tblread-tab.dat", "tab"); +%! assert (dt, d); +%! assert (vt, v); +%! assert (ct, c); +%!test +%! [dt vt ct] = tblread ("tblread-tab.dat", "\t"); +%! assert (dt, d); +%! assert (vt, v); +%! assert (ct, c); +%!test +%! [dt vt ct] = tblread ("tblread-tab.dat", '\t'); +%! assert (dt, d); +%! assert (vt, v); +%! assert (ct, c);