Mercurial > hg > octave-lyh
annotate scripts/io/importdata.m @ 17253:7babcdb9bc13
Use ... instead of \ for line continuation marker.
* plotimages.m, bsxfun.cc, cellfun.cc, __unimplemented__.m,
importdata.m, textscan.m, edit.m, fsolve.m, sqp.m,
__gnuplot_drawnow__.m, __marching_cube__.m, stemleaf.m, polyfit.m,
z_test.m, z_test_2.m, test.m:
Use ... instead of \ for line continuation marker.
author | Stefan Mahr <dac922@gmx.de> |
---|---|
date | Mon, 12 Aug 2013 17:36:54 +0200 |
parents | e39f00a32dc7 |
children | 8cfc28809a07 |
rev | line source |
---|---|
16768 | 1 ## Copyright (C) 2012-2013 Erik Kjellson |
15549
48b1312bb0fe
fix copyright header in importdata
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15547
diff
changeset
|
2 ## |
48b1312bb0fe
fix copyright header in importdata
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15547
diff
changeset
|
3 ## This file is part of Octave. |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
4 ## |
15549
48b1312bb0fe
fix copyright header in importdata
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15547
diff
changeset
|
5 ## Octave is free software; you can redistribute it and/or modify it |
48b1312bb0fe
fix copyright header in importdata
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15547
diff
changeset
|
6 ## under the terms of the GNU General Public License as published by |
48b1312bb0fe
fix copyright header in importdata
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15547
diff
changeset
|
7 ## the Free Software Foundation; either version 3 of the License, or (at |
48b1312bb0fe
fix copyright header in importdata
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15547
diff
changeset
|
8 ## your option) any later version. |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
9 ## |
15549
48b1312bb0fe
fix copyright header in importdata
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15547
diff
changeset
|
10 ## Octave is distributed in the hope that it will be useful, but |
48b1312bb0fe
fix copyright header in importdata
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15547
diff
changeset
|
11 ## WITHOUT ANY WARRANTY; without even the implied warranty of |
48b1312bb0fe
fix copyright header in importdata
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15547
diff
changeset
|
12 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
48b1312bb0fe
fix copyright header in importdata
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15547
diff
changeset
|
13 ## General Public License for more details. |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
14 ## |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
15 ## You should have received a copy of the GNU General Public License |
15549
48b1312bb0fe
fix copyright header in importdata
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15547
diff
changeset
|
16 ## along with Octave; see the file COPYING. If not, see |
48b1312bb0fe
fix copyright header in importdata
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15547
diff
changeset
|
17 ## <http://www.gnu.org/licenses/>. |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
18 |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
19 ## -*- texinfo -*- |
15547
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
20 ## @deftypefn {Function File} {@var{A} =} importdata (@var{fname}) |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
21 ## @deftypefnx {Function File} {@var{A} =} importdata (@var{fname}, @var{delimiter}) |
15847
13d1e9bfa362
doc: small fixes for impordata
Carnë Draug <carandraug+dev@gmail.com>
parents:
15619
diff
changeset
|
22 ## @deftypefnx {Function File} {@var{A} =} importdata (@var{fname}, @var{delimiter}, @var{header_rows}) |
13d1e9bfa362
doc: small fixes for impordata
Carnë Draug <carandraug+dev@gmail.com>
parents:
15619
diff
changeset
|
23 ## @deftypefnx {Function File} {[@var{A}, @var{delimiter}] =} importdata (@dots{}) |
13d1e9bfa362
doc: small fixes for impordata
Carnë Draug <carandraug+dev@gmail.com>
parents:
15619
diff
changeset
|
24 ## @deftypefnx {Function File} {[@var{A}, @var{delimiter}, @var{header_rows}] =} importdata (@dots{}) |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
25 ## Importing data from file. |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
26 ## |
15547
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
27 ## Importing the contents of file @var{fname} into workspace. |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
28 ## |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
29 ## Input parameters: |
16816
12005245b645
doc: Periodic grammarcheck of documentation.
Rik <rik@octave.org>
parents:
16768
diff
changeset
|
30 ## |
15547
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
31 ## @itemize |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
32 ## @item @var{fname} |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
33 ## The file name for the file to import. |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
34 ## |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
35 ## @item @var{delimiter} |
16816
12005245b645
doc: Periodic grammarcheck of documentation.
Rik <rik@octave.org>
parents:
16768
diff
changeset
|
36 ## The character separating columns of data. Use @code{\t} for tab. |
15547
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
37 ## (Only valid for ascii files) |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
38 ## |
15547
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
39 ## @item @var{header_rows} |
16816
12005245b645
doc: Periodic grammarcheck of documentation.
Rik <rik@octave.org>
parents:
16768
diff
changeset
|
40 ## Number of header rows before the data begins. (Only valid for ascii files) |
15547
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
41 ## @end itemize |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
42 ## |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
43 ## Different file types are supported: |
16816
12005245b645
doc: Periodic grammarcheck of documentation.
Rik <rik@octave.org>
parents:
16768
diff
changeset
|
44 ## |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
45 ## @itemize |
16826
a4969508008e
doc: Periodic spellcheck of the documentation.
Rik <rik@octave.org>
parents:
16816
diff
changeset
|
46 ## @item ASCII table |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
47 ## |
16826
a4969508008e
doc: Periodic spellcheck of the documentation.
Rik <rik@octave.org>
parents:
16816
diff
changeset
|
48 ## Importing ASCII table using the specified number of header rows and |
15547
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
49 ## the specified delimiter. |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
50 ## |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
51 ## @item Image file |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
52 ## |
16816
12005245b645
doc: Periodic grammarcheck of documentation.
Rik <rik@octave.org>
parents:
16768
diff
changeset
|
53 ## @item @sc{matlab} file |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
54 ## |
15551
e21b21c2a20d
importdata.m: properly fall back to unimplemented.m & allow spreadheet I/O
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
15549
diff
changeset
|
55 ## @item Spreadsheet files (depending on external software) |
e21b21c2a20d
importdata.m: properly fall back to unimplemented.m & allow spreadheet I/O
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
15549
diff
changeset
|
56 ## |
16826
a4969508008e
doc: Periodic spellcheck of the documentation.
Rik <rik@octave.org>
parents:
16816
diff
changeset
|
57 ## @item WAV file |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
58 ## |
15547
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
59 ## @end itemize |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
60 ## |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
61 ## @seealso{textscan, dlmread, csvread, load} |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
62 ## @end deftypefn |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
63 |
16768 | 64 ## Author: Erik Kjellson <erikiiofph7@users.sourceforge.net> |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
65 |
15547
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
66 function [output, delimiter, header_rows] = importdata (varargin) |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
67 |
15547
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
68 ## Default values |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
69 fname = ""; |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
70 delimiter = ""; |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
71 header_rows = -1; |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
72 |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
73 ########## |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
74 |
15547
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
75 ## Check input arguments |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
76 |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
77 if (nargin < 1) |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
78 print_usage (); |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
79 endif |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
80 |
15547
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
81 fname = varargin{1}; |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
82 ## Check that the file name really is a string |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
83 if (! ischar (fname)) |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
84 error ("importdata: file name needs to be a string"); |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
85 endif |
15547
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
86 if ( strcmpi (fname, "-pastespecial")) |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
87 error ("importdata: option -pastespecial not implemented"); |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
88 endif |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
89 |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
90 if (nargin > 1) |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
91 delimiter = varargin{2}; |
15547
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
92 ## Check that the delimiter really is a string |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
93 if (!ischar (delimiter)) |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
94 error("importdata: delimiter needs to be a character"); |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
95 endif |
15560
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
96 if (length (delimiter) > 1 && !strcmpi (delimiter, "\\t")) |
15547
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
97 error("importdata: delimiter cannot be longer than 1 character"); |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
98 endif |
15547
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
99 if (strcmpi (delimiter, "\\")) |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
100 delimiter = "\\\\"; |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
101 endif |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
102 endif |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
103 |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
104 if (nargin > 2) |
15547
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
105 header_rows = varargin{3}; |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
106 if (!isnumeric (header_rows) || header_rows < 0) |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
107 error ("importdata: number of header rows needs to be an integer number >= 0"); |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
108 endif |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
109 endif |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
110 |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
111 if (nargin > 3) |
15547
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
112 error ("importdata: too many input arguments"); |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
113 endif |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
114 |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
115 ########## |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
116 |
15547
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
117 ## Check file format |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
118 ## Get the extension from the file name. |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
119 [d n fileExt v] = fileparts (fname); |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
120 ## Make sure file extension is in lower case. |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
121 fileExt = lower (fileExt); |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
122 |
16933
e39f00a32dc7
maint: Use parentheses around condition for switch(),while(),if() statements.
Rik <rik@octave.org>
parents:
16826
diff
changeset
|
123 switch (fileExt) |
15547
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
124 case {".au", ".snd"} |
16767
47fbafc6e8e2
* importdata.m: Don't use sprintf to format error messages.
John W. Eaton <jwe@octave.org>
parents:
16653
diff
changeset
|
125 error ("importdata: not implemented for file format %s", fileExt); |
15547
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
126 case ".avi" |
16767
47fbafc6e8e2
* importdata.m: Don't use sprintf to format error messages.
John W. Eaton <jwe@octave.org>
parents:
16653
diff
changeset
|
127 error ("importdata: not implemented for file format %s", fileExt); |
17253
7babcdb9bc13
Use ... instead of \ for line continuation marker.
Stefan Mahr <dac922@gmx.de>
parents:
16933
diff
changeset
|
128 case {".bmp", ".cur", ".gif", ".hdf", ".ico", ".jpe", ".jpeg", ".jpg", ... |
7babcdb9bc13
Use ... instead of \ for line continuation marker.
Stefan Mahr <dac922@gmx.de>
parents:
16933
diff
changeset
|
129 ".pbm", ".pcx", ".pgm", ".png", ".pnm", ".ppm", ".ras", ... |
15547
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
130 ".tif", ".tiff", ".xwd"} |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
131 delimiter = NaN; |
15547
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
132 header_rows = 0; |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
133 [output.cdata, output.colormap, output.alpha] = imread (fname); |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
134 case ".mat" |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
135 delimiter = NaN; |
15547
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
136 header_rows = 0; |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
137 output = load (fname); |
15551
e21b21c2a20d
importdata.m: properly fall back to unimplemented.m & allow spreadheet I/O
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
15549
diff
changeset
|
138 case {".wk1", ".xls", ".xlsx", ".dbf", ".pxl"} |
e21b21c2a20d
importdata.m: properly fall back to unimplemented.m & allow spreadheet I/O
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
15549
diff
changeset
|
139 ## If there's no Excel file support simply fall back to unimplemented.m |
e21b21c2a20d
importdata.m: properly fall back to unimplemented.m & allow spreadheet I/O
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
15549
diff
changeset
|
140 output = xlsread (fname); |
e21b21c2a20d
importdata.m: properly fall back to unimplemented.m & allow spreadheet I/O
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
15549
diff
changeset
|
141 case {".ods", ".sxc", ".fods", ".uos", ".xml"} |
e21b21c2a20d
importdata.m: properly fall back to unimplemented.m & allow spreadheet I/O
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
15549
diff
changeset
|
142 ## unimplemented.m only knows ML functions; odsread isn't one but is in OF |
e21b21c2a20d
importdata.m: properly fall back to unimplemented.m & allow spreadheet I/O
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
15549
diff
changeset
|
143 try |
e21b21c2a20d
importdata.m: properly fall back to unimplemented.m & allow spreadheet I/O
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
15549
diff
changeset
|
144 output = odsread (fname); |
e21b21c2a20d
importdata.m: properly fall back to unimplemented.m & allow spreadheet I/O
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
15549
diff
changeset
|
145 catch |
e21b21c2a20d
importdata.m: properly fall back to unimplemented.m & allow spreadheet I/O
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
15549
diff
changeset
|
146 ## Fall back to unimplemented.m. |
e21b21c2a20d
importdata.m: properly fall back to unimplemented.m & allow spreadheet I/O
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
15549
diff
changeset
|
147 output = xlsread (fname); |
e21b21c2a20d
importdata.m: properly fall back to unimplemented.m & allow spreadheet I/O
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
15549
diff
changeset
|
148 end_try_catch |
15547
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
149 case {".wav", ".wave"} |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
150 delimiter = NaN; |
15547
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
151 header_rows = 0; |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
152 [output.data, output.fs] = wavread (fname); |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
153 otherwise |
15547
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
154 ## Assume the file is in ascii format. |
17253
7babcdb9bc13
Use ... instead of \ for line continuation marker.
Stefan Mahr <dac922@gmx.de>
parents:
16933
diff
changeset
|
155 [output, delimiter, header_rows] = ... |
15547
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
156 importdata_ascii (fname, delimiter, header_rows); |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
157 endswitch |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
158 |
15547
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
159 ## If there are any empty fields in the output structure, then remove them |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
160 if (isstruct (output) && length (output) == 1) |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
161 fields = fieldnames (output); |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
162 for i=1:length (fields) |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
163 if (isempty (getfield (output, fields{i}))) |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
164 output = rmfield (output, fields{i}); |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
165 endif |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
166 endfor |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
167 |
15547
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
168 ## If only one field is left, replace the structure with the field, |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
169 ## i.e. output = output.onlyFieldLeft |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
170 |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
171 ## Update the list of fields |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
172 fields = fieldnames (output); |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
173 if (length (fields) == 1) |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
174 output = getfield (output, fields{1}); |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
175 endif |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
176 endif |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
177 endfunction |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
178 |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
179 |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
180 ######################################## |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
181 |
17253
7babcdb9bc13
Use ... instead of \ for line continuation marker.
Stefan Mahr <dac922@gmx.de>
parents:
16933
diff
changeset
|
182 function [output, delimiter, header_rows] = ... |
15547
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
183 importdata_ascii (fname, delimiter, header_rows) |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
184 |
15547
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
185 ## Define the fields in the output structure so that the order will be |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
186 ## correct. |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
187 |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
188 output.data = []; |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
189 output.textdata = []; |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
190 output.rowheaders = []; |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
191 output.colheaders = []; |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
192 |
15547
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
193 ## Read file into string and count the number of header rows |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
194 file_content = fileread (fname); |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
195 |
16653
1cfa3a49247f
importdata.m: Added Carriage Return as possible line break character.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15847
diff
changeset
|
196 ## Split the file into rows (using \n and/or \r as delimiters between rows). |
1cfa3a49247f
importdata.m: Added Carriage Return as possible line break character.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15847
diff
changeset
|
197 file_content_rows = regexp (file_content, "\n|\n\r|\r|\r\n", "split"); |
15547
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
198 |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
199 ## FIXME: guess delimiter, if it isn't defined |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
200 if (isempty (delimiter)) |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
201 error ("importdata: Guessing delimiter is not implemented yet, you have to specify it."); |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
202 endif |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
203 |
15547
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
204 ## FIXME: A more intelligent way to count number of header rows. This |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
205 ## is needed e.g. when delimiter=' ' and the header contains spaces... |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
206 |
15547
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
207 ## If number of header rows is undefined, then count the number of |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
208 ## header rows by step through row by row and look for the delimiter. |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
209 ## Assume that the header can't contain any delimiter. |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
210 if (header_rows < 0) |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
211 header_rows = 0; |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
212 for i=1:length (file_content_rows) |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
213 if (isempty (regexp(file_content_rows{i}, delimiter, "once"))) |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
214 header_rows++; |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
215 else |
15547
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
216 ## Data part has begun and therefore no more header rows can be |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
217 ## found |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
218 break; |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
219 endif |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
220 endfor |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
221 endif |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
222 |
15547
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
223 ## Put the header rows in output.textdata. |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
224 if (header_rows > 0) |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
225 output.textdata = file_content_rows (1:header_rows)'; |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
226 endif |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
227 |
15547
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
228 ## If space is the delimiter, then remove spaces in the beginning of |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
229 ## each data row. |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
230 if (strcmpi (delimiter, " ")) |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
231 for i=(header_rows+1):length (file_content_rows) |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
232 ## strtrim does not only remove the leading spaces but also the |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
233 ## tailing spaces, but that doesn't really matter. |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
234 file_content_rows{i} = strtrim (file_content_rows{i}); |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
235 endfor |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
236 endif |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
237 |
15547
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
238 ## Remove empty data rows. Go through them backwards so that you wont |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
239 ## get out of bounds. |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
240 for i=length (file_content_rows):-1:(header_rows + 1) |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
241 if (length (file_content_rows{i}) < 1) |
17253
7babcdb9bc13
Use ... instead of \ for line continuation marker.
Stefan Mahr <dac922@gmx.de>
parents:
16933
diff
changeset
|
242 file_content_rows = [file_content_rows(1:i-1), ... |
15547
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
243 file_content_rows(i+1:length(file_content_rows))]; |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
244 endif |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
245 endfor |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
246 |
15547
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
247 ## Count the number of data columns. If there are different number of |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
248 ## columns, use the greatest value. |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
249 data_columns = 0; |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
250 delimiter_pattern = delimiter; |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
251 ## If space is the delimiter, then multiple spaces should count as ONE |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
252 ## delimiter. Also ignore leading spaces. |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
253 if (strcmpi (delimiter, " ")) |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
254 delimiter_pattern = ' +'; |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
255 endif |
15547
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
256 for i=(header_rows+1):length(file_content_rows) |
15555
17b04c4c268d
importdata.m: style fixes
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15554
diff
changeset
|
257 data_columns = max (data_columns, |
17b04c4c268d
importdata.m: style fixes
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15554
diff
changeset
|
258 length (regexp (file_content_rows{i}, |
17b04c4c268d
importdata.m: style fixes
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15554
diff
changeset
|
259 delimiter_pattern, "split"))); |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
260 endfor |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
261 |
15619
1feb913c34ca
importdata.m: Correction for non-numeric data and added test for complex numbers.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15560
diff
changeset
|
262 ## FIXME: Make it behave like Matlab when importing a table where a whole |
1feb913c34ca
importdata.m: Correction for non-numeric data and added test for complex numbers.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15560
diff
changeset
|
263 ## column is text only. E.g. |
1feb913c34ca
importdata.m: Correction for non-numeric data and added test for complex numbers.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15560
diff
changeset
|
264 ## abc 12 34 |
1feb913c34ca
importdata.m: Correction for non-numeric data and added test for complex numbers.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15560
diff
changeset
|
265 ## def 56 78 |
1feb913c34ca
importdata.m: Correction for non-numeric data and added test for complex numbers.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15560
diff
changeset
|
266 ## This would give a 3x2 data matrix with the left column = nan(2,1), and |
1feb913c34ca
importdata.m: Correction for non-numeric data and added test for complex numbers.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15560
diff
changeset
|
267 ## the text would end up in textdata. |
1feb913c34ca
importdata.m: Correction for non-numeric data and added test for complex numbers.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15560
diff
changeset
|
268 ## In Matlab the data matrix would only be a 2x2 matrix, see example at: |
1feb913c34ca
importdata.m: Correction for non-numeric data and added test for complex numbers.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15560
diff
changeset
|
269 ## http://www.mathworks.se/help/matlab/import_export/import-numeric-data-and-header-text-from-a-text-file.html |
1feb913c34ca
importdata.m: Correction for non-numeric data and added test for complex numbers.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15560
diff
changeset
|
270 |
15547
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
271 ## Go through the data and put it in either output.data or |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
272 ## output.textdata depending on if it is numeric or not. |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
273 output.data = NaN (length (file_content_rows) - header_rows, data_columns); |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
274 for i=(header_rows+1):length(file_content_rows) |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
275 ## Only use the row if it contains anything other than white-space |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
276 ## characters. |
15554
499467c51cd5
importdata: Speeded up the import by a factor 2.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15551
diff
changeset
|
277 if (any (file_content_rows{i} != " ")) |
15547
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
278 row_data = regexp (file_content_rows{i}, delimiter_pattern, "split"); |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
279 |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
280 for j=1:length(row_data) |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
281 ## Try to convert the column to a number, if it works put it in |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
282 ## output.data, otherwise in output.textdata |
15560
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
283 if (!isempty (row_data{j})) |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
284 data_numeric = str2double (row_data{j}); |
15619
1feb913c34ca
importdata.m: Correction for non-numeric data and added test for complex numbers.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15560
diff
changeset
|
285 if (!isnan (data_numeric)) |
15560
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
286 output.data(i-header_rows, j) = data_numeric; |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
287 else |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
288 output.textdata{i,j} = row_data{j}; |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
289 endif |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
290 endif |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
291 endfor |
15547
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
292 |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
293 endif |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
294 endfor |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
295 |
15547
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
296 ## Check wether rowheaders or colheaders should be used |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
297 if ((header_rows == data_columns) && (size (output.textdata, 2) == 1)) |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
298 output.rowheaders = output.textdata; |
15547
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
299 elseif (size (output.textdata, 2) == data_columns) |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
300 output.colheaders = output.textdata(end,:); |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
301 endif |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
302 |
15557
13206177060b
importdata.m: 3X speedup by using str2double rather than num2str.
Rik <rik@octave.org>
parents:
15555
diff
changeset
|
303 ## When delimiter = "\\t" convert it to a tab, done for Matlab compatibility. |
13206177060b
importdata.m: 3X speedup by using str2double rather than num2str.
Rik <rik@octave.org>
parents:
15555
diff
changeset
|
304 if (strcmp (delimiter, '\t')) |
15547
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
305 delimiter = "\t"; |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
306 endif |
15557
13206177060b
importdata.m: 3X speedup by using str2double rather than num2str.
Rik <rik@octave.org>
parents:
15555
diff
changeset
|
307 |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
308 endfunction |
15560
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
309 |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
310 |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
311 ######################################## |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
312 |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
313 %!test |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
314 %! # Comma separated values |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
315 %! A = [3.1 -7.2 0; 0.012 6.5 128]; |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
316 %! fn = tmpnam (); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
317 %! fid = fopen (fn, "w"); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
318 %! fputs (fid, "3.1,-7.2,0\n0.012,6.5,128"); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
319 %! fclose (fid); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
320 %! [a,d,h] = importdata (fn, ","); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
321 %! unlink (fn); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
322 %! assert (a, A); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
323 %! assert (d, ","); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
324 %! assert (h, 0); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
325 |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
326 %!test |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
327 %! # Tab separated values |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
328 %! A = [3.1 -7.2 0; 0.012 6.5 128]; |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
329 %! fn = tmpnam (); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
330 %! fid = fopen (fn, "w"); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
331 %! fputs (fid, "3.1\t-7.2\t0\n0.012\t6.5\t128"); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
332 %! fclose (fid); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
333 %! [a,d,h] = importdata (fn, "\\t"); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
334 %! unlink (fn); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
335 %! assert (a, A); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
336 %! assert (d, "\t"); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
337 %! assert (h, 0); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
338 |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
339 %!test |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
340 %! # Space separated values, using multiple spaces to align in columns. |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
341 %! A = [3.1 -7.2 0; 0.012 6.5 128]; |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
342 %! fn = tmpnam (); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
343 %! fid = fopen (fn, "w"); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
344 %! fprintf (fid, "%10.3f %10.3f %10.3f\n", A(1,:)); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
345 %! fprintf (fid, "%10.3f %10.3f %10.3f\n", A(2,:)); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
346 %! fclose (fid); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
347 %! [a,d,h] = importdata (fn, " "); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
348 %! unlink (fn); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
349 %! assert (a, A); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
350 %! assert (d, " "); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
351 %! assert (h, 0); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
352 |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
353 %!test |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
354 %! # Header |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
355 %! A.data = [3.1 -7.2 0; 0.012 6.5 128]; |
17253
7babcdb9bc13
Use ... instead of \ for line continuation marker.
Stefan Mahr <dac922@gmx.de>
parents:
16933
diff
changeset
|
356 %! A.textdata = {"This is a header row."; ... |
15560
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
357 %! "this row does not contain any data, but the next one does."}; |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
358 %! fn = tmpnam (); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
359 %! fid = fopen (fn, "w"); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
360 %! fputs (fid, [A.textdata{1} "\n"]); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
361 %! fputs (fid, [A.textdata{2} "\n"]); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
362 %! fputs (fid, "3.1\t-7.2\t0\n0.012\t6.5\t128"); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
363 %! fclose (fid); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
364 %! [a,d,h] = importdata (fn, "\\t"); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
365 %! unlink (fn); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
366 %! assert (a, A); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
367 %! assert (d, "\t"); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
368 %! assert (h, 2); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
369 |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
370 %!test |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
371 %! # Ignore empty rows containing only spaces |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
372 %! A = [3.1 -7.2 0; 0.012 6.5 128]; |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
373 %! fn = tmpnam (); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
374 %! fid = fopen (fn, "w"); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
375 %! fprintf (fid, "%10.3f %10.3f %10.3f\n", A(1,:)); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
376 %! fputs (fid, " "); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
377 %! fprintf (fid, "%10.3f %10.3f %10.3f\n", A(2,:)); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
378 %! fclose (fid); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
379 %! [a,d,h] = importdata (fn, " "); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
380 %! unlink (fn); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
381 %! assert (a, A); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
382 %! assert (d, " "); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
383 %! assert (h, 0); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
384 |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
385 %!test |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
386 %! # Exponentials |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
387 %! A = [3.1 -7.2 0; 0.012 6.5 128]; |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
388 %! fn = tmpnam (); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
389 %! fid = fopen (fn, "w"); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
390 %! fputs (fid, "+3.1e0\t-72E-1\t0\n12e-3\t6.5\t128"); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
391 %! fclose (fid); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
392 %! [a,d,h] = importdata (fn, "\\t"); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
393 %! unlink (fn); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
394 %! assert (a, A); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
395 %! assert (d, "\t"); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
396 %! assert (h, 0); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
397 |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
398 %!test |
15619
1feb913c34ca
importdata.m: Correction for non-numeric data and added test for complex numbers.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15560
diff
changeset
|
399 %! # Complex numbers |
1feb913c34ca
importdata.m: Correction for non-numeric data and added test for complex numbers.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15560
diff
changeset
|
400 %! A = [3.1 -7.2 0-3.4i; 0.012 -6.5+7.2i 128]; |
1feb913c34ca
importdata.m: Correction for non-numeric data and added test for complex numbers.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15560
diff
changeset
|
401 %! fn = tmpnam (); |
1feb913c34ca
importdata.m: Correction for non-numeric data and added test for complex numbers.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15560
diff
changeset
|
402 %! fid = fopen (fn, "w"); |
1feb913c34ca
importdata.m: Correction for non-numeric data and added test for complex numbers.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15560
diff
changeset
|
403 %! fputs (fid, "3.1\t-7.2\t0-3.4i\n0.012\t-6.5+7.2i\t128"); |
1feb913c34ca
importdata.m: Correction for non-numeric data and added test for complex numbers.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15560
diff
changeset
|
404 %! fclose (fid); |
1feb913c34ca
importdata.m: Correction for non-numeric data and added test for complex numbers.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15560
diff
changeset
|
405 %! [a,d,h] = importdata (fn, "\\t"); |
1feb913c34ca
importdata.m: Correction for non-numeric data and added test for complex numbers.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15560
diff
changeset
|
406 %! unlink (fn); |
1feb913c34ca
importdata.m: Correction for non-numeric data and added test for complex numbers.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15560
diff
changeset
|
407 %! assert (a, A); |
1feb913c34ca
importdata.m: Correction for non-numeric data and added test for complex numbers.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15560
diff
changeset
|
408 %! assert (d, "\t"); |
1feb913c34ca
importdata.m: Correction for non-numeric data and added test for complex numbers.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15560
diff
changeset
|
409 %! assert (h, 0); |
1feb913c34ca
importdata.m: Correction for non-numeric data and added test for complex numbers.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15560
diff
changeset
|
410 |
1feb913c34ca
importdata.m: Correction for non-numeric data and added test for complex numbers.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15560
diff
changeset
|
411 %!test |
15560
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
412 %! # Missing values |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
413 %! A = [3.1 NaN 0; 0.012 6.5 128]; |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
414 %! fn = tmpnam (); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
415 %! fid = fopen (fn, "w"); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
416 %! fputs (fid, "3.1\t\t0\n0.012\t6.5\t128"); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
417 %! fclose (fid); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
418 %! [a,d,h] = importdata (fn, "\\t"); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
419 %! unlink (fn); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
420 %! assert (a, A); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
421 %! assert (d, "\t"); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
422 %! assert (h, 0); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
423 |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
424 %!test |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
425 %! # CRLF for line breaks |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
426 %! A = [3.1 -7.2 0; 0.012 6.5 128]; |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
427 %! fn = tmpnam (); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
428 %! fid = fopen (fn, "w"); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
429 %! fputs (fid, "3.1\t-7.2\t0\r\n0.012\t6.5\t128"); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
430 %! fclose (fid); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
431 %! [a,d,h] = importdata (fn, "\\t"); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
432 %! unlink (fn); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
433 %! assert (a, A); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
434 %! assert (d, "\t"); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
435 %! assert (h, 0); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
436 |
16653
1cfa3a49247f
importdata.m: Added Carriage Return as possible line break character.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15847
diff
changeset
|
437 %!test |
1cfa3a49247f
importdata.m: Added Carriage Return as possible line break character.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15847
diff
changeset
|
438 %! # CR for line breaks |
1cfa3a49247f
importdata.m: Added Carriage Return as possible line break character.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15847
diff
changeset
|
439 %! A = [3.1 -7.2 0; 0.012 6.5 128]; |
1cfa3a49247f
importdata.m: Added Carriage Return as possible line break character.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15847
diff
changeset
|
440 %! fn = tmpnam (); |
1cfa3a49247f
importdata.m: Added Carriage Return as possible line break character.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15847
diff
changeset
|
441 %! fid = fopen (fn, "w"); |
1cfa3a49247f
importdata.m: Added Carriage Return as possible line break character.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15847
diff
changeset
|
442 %! fputs (fid, "3.1\t-7.2\t0\r0.012\t6.5\t128"); |
1cfa3a49247f
importdata.m: Added Carriage Return as possible line break character.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15847
diff
changeset
|
443 %! fclose (fid); |
1cfa3a49247f
importdata.m: Added Carriage Return as possible line break character.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15847
diff
changeset
|
444 %! [a,d,h] = importdata (fn, "\\t"); |
1cfa3a49247f
importdata.m: Added Carriage Return as possible line break character.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15847
diff
changeset
|
445 %! unlink (fn); |
1cfa3a49247f
importdata.m: Added Carriage Return as possible line break character.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15847
diff
changeset
|
446 %! assert (a, A); |
1cfa3a49247f
importdata.m: Added Carriage Return as possible line break character.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15847
diff
changeset
|
447 %! assert (d, "\t"); |
1cfa3a49247f
importdata.m: Added Carriage Return as possible line break character.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15847
diff
changeset
|
448 %! assert (h, 0); |
1cfa3a49247f
importdata.m: Added Carriage Return as possible line break character.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15847
diff
changeset
|
449 |