Mercurial > octave
annotate scripts/io/importdata.m @ 33634:4a70f390c85e default tip @
maint: Merge stable to default.
author | Markus Mützel <markus.muetzel@gmx.de> |
---|---|
date | Tue, 28 May 2024 15:25:54 +0200 |
parents | 2e484f9f1f18 |
children |
rev | line source |
---|---|
27923
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
1 ######################################################################## |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
2 ## |
32632
2e484f9f1f18
maint: update Octave Project Developers copyright for the new year
John W. Eaton <jwe@octave.org>
parents:
31989
diff
changeset
|
3 ## Copyright (C) 2012-2024 The Octave Project Developers |
27918
b442ec6dda5c
use centralized file for copyright info for individual contributors
John W. Eaton <jwe@octave.org>
parents:
26376
diff
changeset
|
4 ## |
27923
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
5 ## See the file COPYRIGHT.md in the top-level directory of this |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
6 ## distribution or <https://octave.org/copyright/>. |
15549
48b1312bb0fe
fix copyright header in importdata
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15547
diff
changeset
|
7 ## |
48b1312bb0fe
fix copyright header in importdata
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15547
diff
changeset
|
8 ## This file is part of Octave. |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
9 ## |
24534
194eb4bd202b
maint: Update punctuation for GPL v3 license text.
Rik <rik@octave.org>
parents:
24477
diff
changeset
|
10 ## Octave is free software: you can redistribute it and/or modify it |
15549
48b1312bb0fe
fix copyright header in importdata
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15547
diff
changeset
|
11 ## under the terms of the GNU General Public License as published by |
24534
194eb4bd202b
maint: Update punctuation for GPL v3 license text.
Rik <rik@octave.org>
parents:
24477
diff
changeset
|
12 ## the Free Software Foundation, either version 3 of the License, or |
22755
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22738
diff
changeset
|
13 ## (at your option) any later version. |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
14 ## |
15549
48b1312bb0fe
fix copyright header in importdata
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15547
diff
changeset
|
15 ## 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
|
16 ## WITHOUT ANY WARRANTY; without even the implied warranty of |
22755
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22738
diff
changeset
|
17 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22738
diff
changeset
|
18 ## GNU General Public License for more details. |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
19 ## |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
20 ## 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
|
21 ## along with Octave; see the file COPYING. If not, see |
24534
194eb4bd202b
maint: Update punctuation for GPL v3 license text.
Rik <rik@octave.org>
parents:
24477
diff
changeset
|
22 ## <https://www.gnu.org/licenses/>. |
27923
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
23 ## |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
24 ######################################################################## |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
25 |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
26 ## -*- texinfo -*- |
20852
516bb87ea72e
2015 Code Sprint: remove class of function from docstring for all m-files.
Rik <rik@octave.org>
parents:
20735
diff
changeset
|
27 ## @deftypefn {} {@var{A} =} importdata (@var{fname}) |
516bb87ea72e
2015 Code Sprint: remove class of function from docstring for all m-files.
Rik <rik@octave.org>
parents:
20735
diff
changeset
|
28 ## @deftypefnx {} {@var{A} =} importdata (@var{fname}, @var{delimiter}) |
516bb87ea72e
2015 Code Sprint: remove class of function from docstring for all m-files.
Rik <rik@octave.org>
parents:
20735
diff
changeset
|
29 ## @deftypefnx {} {@var{A} =} importdata (@var{fname}, @var{delimiter}, @var{header_rows}) |
516bb87ea72e
2015 Code Sprint: remove class of function from docstring for all m-files.
Rik <rik@octave.org>
parents:
20735
diff
changeset
|
30 ## @deftypefnx {} {[@var{A}, @var{delimiter}] =} importdata (@dots{}) |
516bb87ea72e
2015 Code Sprint: remove class of function from docstring for all m-files.
Rik <rik@octave.org>
parents:
20735
diff
changeset
|
31 ## @deftypefnx {} {[@var{A}, @var{delimiter}, @var{header_rows}] =} importdata (@dots{}) |
17358 | 32 ## Import data from the file @var{fname}. |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
33 ## |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
34 ## Input parameters: |
16816
12005245b645
doc: Periodic grammarcheck of documentation.
Rik <rik@octave.org>
parents:
16768
diff
changeset
|
35 ## |
15547
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
36 ## @itemize |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
37 ## @item @var{fname} |
17358 | 38 ## The name of the file containing data. |
19593
446c46af4b42
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
19293
diff
changeset
|
39 ## |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
40 ## @item @var{delimiter} |
16816
12005245b645
doc: Periodic grammarcheck of documentation.
Rik <rik@octave.org>
parents:
16768
diff
changeset
|
41 ## The character separating columns of data. Use @code{\t} for tab. |
17358 | 42 ## (Only valid for ASCII files) |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
43 ## |
15547
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
44 ## @item @var{header_rows} |
17358 | 45 ## The number of header rows before the data begins. (Only valid for ASCII |
46 ## files) | |
15547
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
47 ## @end itemize |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
48 ## |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
49 ## Different file types are supported: |
16816
12005245b645
doc: Periodic grammarcheck of documentation.
Rik <rik@octave.org>
parents:
16768
diff
changeset
|
50 ## |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
51 ## @itemize |
16826
a4969508008e
doc: Periodic spellcheck of the documentation.
Rik <rik@octave.org>
parents:
16816
diff
changeset
|
52 ## @item ASCII table |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
53 ## |
20160
03b9d17a2d95
doc: Update more docstrings to have one sentence summary as first line.
Rik <rik@octave.org>
parents:
19833
diff
changeset
|
54 ## Import ASCII table using the specified number of header rows and the |
03b9d17a2d95
doc: Update more docstrings to have one sentence summary as first line.
Rik <rik@octave.org>
parents:
19833
diff
changeset
|
55 ## specified delimiter. |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
56 ## |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
57 ## @item Image file |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
58 ## |
16816
12005245b645
doc: Periodic grammarcheck of documentation.
Rik <rik@octave.org>
parents:
16768
diff
changeset
|
59 ## @item @sc{matlab} file |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
60 ## |
15551
e21b21c2a20d
importdata.m: properly fall back to unimplemented.m & allow spreadheet I/O
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
15549
diff
changeset
|
61 ## @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
|
62 ## |
16826
a4969508008e
doc: Periodic spellcheck of the documentation.
Rik <rik@octave.org>
parents:
16816
diff
changeset
|
63 ## @item WAV file |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
64 ## |
15547
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
65 ## @end itemize |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
66 ## |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
67 ## @seealso{textscan, dlmread, csvread, load} |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
68 ## @end deftypefn |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
69 |
17358 | 70 function [output, delimiter, header_rows] = importdata (fname, delimiter = "", header_rows = -1) |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
71 |
28789
28de41192f3c
Eliminate unneeded verification of nargin, nargout in m-files.
Rik <rik@octave.org>
parents:
28693
diff
changeset
|
72 if (nargin < 1) |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
73 print_usage (); |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
74 endif |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
75 |
15547
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
76 if (! ischar (fname)) |
17358 | 77 error ("importdata: FNAME must be a string"); |
78 elseif (strcmpi (fname, "-pastespecial")) | |
15547
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
79 error ("importdata: option -pastespecial not implemented"); |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
80 endif |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
81 |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
82 if (nargin > 1) |
17358 | 83 if (! ischar (delimiter) |
84 || (length (delimiter) > 1 && ! strcmp (delimiter, '\t'))) | |
28912
0de38a6ef693
maint: Use Octave convention of space after function name in scripts dir.
Rik <rik@octave.org>
parents:
28896
diff
changeset
|
85 error ("importdata: DELIMITER must be a single character"); |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
86 endif |
17358 | 87 if (strcmp (delimiter, '\t')) |
88 delimiter = "\t"; | |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
89 endif |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
90 endif |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
91 |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
92 if (nargin > 2) |
17358 | 93 if (! isnumeric (header_rows) || header_rows < 0 |
94 || header_rows != fix (header_rows)) | |
95 error ("importdata: HEADER_ROWS must be an integer >= 0"); | |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
96 endif |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
97 endif |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
98 |
15547
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
99 ## Check file format |
20713
2469d78a1d8b
Consistently use 'filename' rather than 'file name' throughout code base.
Rik <rik@octave.org>
parents:
20160
diff
changeset
|
100 ## Get the extension from the filename. |
28563
5a07c798eb08
avoid function call input or output argument number mismatch
John W. Eaton <jwe@octave.org>
parents:
28358
diff
changeset
|
101 [~, ~, ext] = fileparts (fname); |
17358 | 102 ext = lower (ext); |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
103 |
17358 | 104 switch (ext) |
22736
44d9d526d1e3
importdata.m: Allow importing of sound files via audioread.
Rik <rik@octave.org>
parents:
22735
diff
changeset
|
105 case {".au", ".snd", ".flac", ".ogg", ".wav", ".wave"} |
44d9d526d1e3
importdata.m: Allow importing of sound files via audioread.
Rik <rik@octave.org>
parents:
22735
diff
changeset
|
106 [output.data, output.fs] = audioread (fname); |
17358 | 107 case {".avi", ".mj2", ".mpg", ".asf", ".asx", ".wmv", ".mp4", ".m4v", ... |
19593
446c46af4b42
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
19293
diff
changeset
|
108 ".mov"} |
17358 | 109 error ("importdata: not implemented for file format %s", ext); |
17245
7babcdb9bc13
Use ... instead of \ for line continuation marker.
Stefan Mahr <dac922@gmx.de>
parents:
16933
diff
changeset
|
110 case {".bmp", ".cur", ".gif", ".hdf", ".ico", ".jpe", ".jpeg", ".jpg", ... |
17358 | 111 ".jp2", ".jpf", ".jpx", ".j2c", ".j2k", ".pbm", ".pcx", ".pgm", ... |
112 ".png", ".pnm", ".ppm", ".ras", ".tif", ".tiff", ".xwd"} | |
113 delimiter = NaN; | |
15547
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
114 header_rows = 0; |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
115 [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
|
116 case ".mat" |
17358 | 117 delimiter = NaN; |
15547
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
118 header_rows = 0; |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
119 output = load (fname); |
17358 | 120 case {".xls", ".xlsx", ".wk1", ".dbf", ".pxl"} |
15551
e21b21c2a20d
importdata.m: properly fall back to unimplemented.m & allow spreadheet I/O
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
15549
diff
changeset
|
121 ## 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
|
122 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
|
123 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
|
124 ## 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
|
125 try |
e21b21c2a20d
importdata.m: properly fall back to unimplemented.m & allow spreadheet I/O
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
15549
diff
changeset
|
126 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
|
127 catch |
e21b21c2a20d
importdata.m: properly fall back to unimplemented.m & allow spreadheet I/O
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
15549
diff
changeset
|
128 ## 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
|
129 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
|
130 end_try_catch |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
131 otherwise |
17358 | 132 ## Assume the file is in ASCII format. |
19833
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19697
diff
changeset
|
133 [output, delimiter, header_rows] = ... |
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19697
diff
changeset
|
134 importdata_ascii (fname, delimiter, header_rows); |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
135 endswitch |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
136 |
15547
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
137 ## If there are any empty fields in the output structure, then remove them |
17358 | 138 if (isstruct (output) && numel (output) == 1) |
15547
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
139 fields = fieldnames (output); |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
140 for i=1:length (fields) |
17358 | 141 if (isempty (output.(fields{i}))) |
15547
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
142 output = rmfield (output, fields{i}); |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
143 endif |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
144 endfor |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
145 |
15547
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
146 ## If only one field is left, replace the structure with the field, |
17358 | 147 ## i.e., output = output.onlyFieldLeft |
15547
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
148 |
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
149 ## Update the list of fields |
18538
fcd87f68af4f
Deprecate nfields and replace with numfields.
Rik <rik@octave.org>
parents:
18532
diff
changeset
|
150 if (numfields (output) == 1) |
17358 | 151 output = output.(fields{1}); |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
152 endif |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
153 endif |
17358 | 154 |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
155 endfunction |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
156 |
17358 | 157 function [output, delimiter, header_rows] = importdata_ascii (fname, delimiter, num_header_rows) |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
158 |
17358 | 159 ## Define fields in the output structure so that the order will be correct. |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
160 output.data = []; |
17357
44624eb20076
Speed up importdata() ASCII CSV processing using dlmread() as core
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
17325
diff
changeset
|
161 output.textdata = {}; |
44624eb20076
Speed up importdata() ASCII CSV processing using dlmread() as core
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
17325
diff
changeset
|
162 output.rowheaders = {}; |
44624eb20076
Speed up importdata() ASCII CSV processing using dlmread() as core
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
17325
diff
changeset
|
163 output.colheaders = {}; |
15547
9a455cf96dbe
Incorporate importdata.m into Octave sources
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15546
diff
changeset
|
164 |
17357
44624eb20076
Speed up importdata() ASCII CSV processing using dlmread() as core
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
17325
diff
changeset
|
165 [fid, msg] = fopen (fname, "r"); |
44624eb20076
Speed up importdata() ASCII CSV processing using dlmread() as core
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
17325
diff
changeset
|
166 if (fid == -1) |
44624eb20076
Speed up importdata() ASCII CSV processing using dlmread() as core
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
17325
diff
changeset
|
167 error (msg); |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
168 endif |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
169 |
17358 | 170 header_rows = 0; |
171 header_cols = 0; | |
19593
446c46af4b42
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
19293
diff
changeset
|
172 |
17358 | 173 ## Work through first few rows line by line until a delimiter is found. |
174 while (ischar (row = fgetl (fid))) | |
17357
44624eb20076
Speed up importdata() ASCII CSV processing using dlmread() as core
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
17325
diff
changeset
|
175 |
44624eb20076
Speed up importdata() ASCII CSV processing using dlmread() as core
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
17325
diff
changeset
|
176 ## If no delimiter determined yet, make a guess. |
44624eb20076
Speed up importdata() ASCII CSV processing using dlmread() as core
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
17325
diff
changeset
|
177 if (isempty (delimiter)) |
28277
01358faf49c9
importdata.m: Overhaul column header detection (bug #58328).
Rik <rik@octave.org>
parents:
27978
diff
changeset
|
178 ## Look for number, DELIMITER, DELIMITER*, number |
01358faf49c9
importdata.m: Overhaul column header detection (bug #58328).
Rik <rik@octave.org>
parents:
27978
diff
changeset
|
179 delim = regexpi (row, '[-+]?\d*[.]?\d+(?:[ed][-+]?\d+)?[ij]?([^-+\d.deij])\1*[-+]?\d*[.]?\d+(?:[ed][-+]?\d+)?[ij]?', |
22796
1c73344fd348
importdata.m: Improve performance when reading text files (bug #49630).
Rik <rik@octave.org>
parents:
22755
diff
changeset
|
180 'tokens', 'once'); |
17358 | 181 if (! isempty (delim)) |
182 delimiter = delim{1}; | |
17357
44624eb20076
Speed up importdata() ASCII CSV processing using dlmread() as core
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
17325
diff
changeset
|
183 endif |
44624eb20076
Speed up importdata() ASCII CSV processing using dlmread() as core
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
17325
diff
changeset
|
184 endif |
44624eb20076
Speed up importdata() ASCII CSV processing using dlmread() as core
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
17325
diff
changeset
|
185 |
44624eb20076
Speed up importdata() ASCII CSV processing using dlmread() as core
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
17325
diff
changeset
|
186 if (delimiter == " ") |
17358 | 187 row_entries = regexp (strtrim (row), ' +', 'split'); |
17357
44624eb20076
Speed up importdata() ASCII CSV processing using dlmread() as core
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
17325
diff
changeset
|
188 else |
17358 | 189 row_entries = ostrsplit (row, delimiter); |
17357
44624eb20076
Speed up importdata() ASCII CSV processing using dlmread() as core
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
17325
diff
changeset
|
190 endif |
44624eb20076
Speed up importdata() ASCII CSV processing using dlmread() as core
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
17325
diff
changeset
|
191 row_data = str2double (row_entries); |
22796
1c73344fd348
importdata.m: Improve performance when reading text files (bug #49630).
Rik <rik@octave.org>
parents:
22755
diff
changeset
|
192 if (header_rows < num_header_rows) |
20735
418ae0cb752f
Replace ++,-- with in-place operators for performance.
Rik <rik@octave.org>
parents:
20713
diff
changeset
|
193 header_rows += 1; |
17358 | 194 output.textdata{end+1, 1} = row; |
22796
1c73344fd348
importdata.m: Improve performance when reading text files (bug #49630).
Rik <rik@octave.org>
parents:
22755
diff
changeset
|
195 elseif (all (isnan (row_data)) && header_rows < 25) |
1c73344fd348
importdata.m: Improve performance when reading text files (bug #49630).
Rik <rik@octave.org>
parents:
22755
diff
changeset
|
196 header_rows += 1; |
1c73344fd348
importdata.m: Improve performance when reading text files (bug #49630).
Rik <rik@octave.org>
parents:
22755
diff
changeset
|
197 output.textdata{end+1, 1} = row; |
1c73344fd348
importdata.m: Improve performance when reading text files (bug #49630).
Rik <rik@octave.org>
parents:
22755
diff
changeset
|
198 elseif (all (isnan (row_data))) |
1c73344fd348
importdata.m: Improve performance when reading text files (bug #49630).
Rik <rik@octave.org>
parents:
22755
diff
changeset
|
199 ## Failed to find any numeric input in first 25 lines |
1c73344fd348
importdata.m: Improve performance when reading text files (bug #49630).
Rik <rik@octave.org>
parents:
22755
diff
changeset
|
200 row = -1; |
1c73344fd348
importdata.m: Improve performance when reading text files (bug #49630).
Rik <rik@octave.org>
parents:
22755
diff
changeset
|
201 break; |
17357
44624eb20076
Speed up importdata() ASCII CSV processing using dlmread() as core
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
17325
diff
changeset
|
202 else |
28277
01358faf49c9
importdata.m: Overhaul column header detection (bug #58328).
Rik <rik@octave.org>
parents:
27978
diff
changeset
|
203 ## The number of header rows and header columns is now known. |
01358faf49c9
importdata.m: Overhaul column header detection (bug #58328).
Rik <rik@octave.org>
parents:
27978
diff
changeset
|
204 header_cols = find (! isnan (row_data), 1) - 1; |
01358faf49c9
importdata.m: Overhaul column header detection (bug #58328).
Rik <rik@octave.org>
parents:
27978
diff
changeset
|
205 has_rowheaders = (header_cols == 1); |
01358faf49c9
importdata.m: Overhaul column header detection (bug #58328).
Rik <rik@octave.org>
parents:
27978
diff
changeset
|
206 |
01358faf49c9
importdata.m: Overhaul column header detection (bug #58328).
Rik <rik@octave.org>
parents:
27978
diff
changeset
|
207 ## Set colheaders output from textdata if appropriate |
01358faf49c9
importdata.m: Overhaul column header detection (bug #58328).
Rik <rik@octave.org>
parents:
27978
diff
changeset
|
208 ## NOTE: Octave chooses to be Matlab incompatible and return |
01358faf49c9
importdata.m: Overhaul column header detection (bug #58328).
Rik <rik@octave.org>
parents:
27978
diff
changeset
|
209 ## both 'rowheaders' and 'colheaders' when they are present. |
01358faf49c9
importdata.m: Overhaul column header detection (bug #58328).
Rik <rik@octave.org>
parents:
27978
diff
changeset
|
210 ## Matlab allows only one to be present at a time. |
17358 | 211 if (! isempty (output.textdata)) |
212 if (delimiter == " ") | |
213 output.colheaders = regexp (strtrim (output.textdata{end}), | |
214 ' +', 'split'); | |
215 else | |
216 output.colheaders = ostrsplit (output.textdata{end}, delimiter); | |
217 endif | |
28693
2bb050267d74
maint: Remove trailing spaces from code base.
Rik <rik@octave.org>
parents:
28563
diff
changeset
|
218 |
28277
01358faf49c9
importdata.m: Overhaul column header detection (bug #58328).
Rik <rik@octave.org>
parents:
27978
diff
changeset
|
219 nc_hdr = numel (output.colheaders); |
01358faf49c9
importdata.m: Overhaul column header detection (bug #58328).
Rik <rik@octave.org>
parents:
27978
diff
changeset
|
220 nc_dat = numel (row_data); |
01358faf49c9
importdata.m: Overhaul column header detection (bug #58328).
Rik <rik@octave.org>
parents:
27978
diff
changeset
|
221 if (! has_rowheaders) |
01358faf49c9
importdata.m: Overhaul column header detection (bug #58328).
Rik <rik@octave.org>
parents:
27978
diff
changeset
|
222 if (nc_hdr != nc_dat) |
01358faf49c9
importdata.m: Overhaul column header detection (bug #58328).
Rik <rik@octave.org>
parents:
27978
diff
changeset
|
223 output = rmfield (output, {"rowheaders", "colheaders"}); |
01358faf49c9
importdata.m: Overhaul column header detection (bug #58328).
Rik <rik@octave.org>
parents:
27978
diff
changeset
|
224 else |
01358faf49c9
importdata.m: Overhaul column header detection (bug #58328).
Rik <rik@octave.org>
parents:
27978
diff
changeset
|
225 output = rmfield (output, "rowheaders"); |
01358faf49c9
importdata.m: Overhaul column header detection (bug #58328).
Rik <rik@octave.org>
parents:
27978
diff
changeset
|
226 endif |
01358faf49c9
importdata.m: Overhaul column header detection (bug #58328).
Rik <rik@octave.org>
parents:
27978
diff
changeset
|
227 else |
01358faf49c9
importdata.m: Overhaul column header detection (bug #58328).
Rik <rik@octave.org>
parents:
27978
diff
changeset
|
228 if (nc_hdr != nc_dat-1) |
01358faf49c9
importdata.m: Overhaul column header detection (bug #58328).
Rik <rik@octave.org>
parents:
27978
diff
changeset
|
229 output = rmfield (output, "colheaders"); |
01358faf49c9
importdata.m: Overhaul column header detection (bug #58328).
Rik <rik@octave.org>
parents:
27978
diff
changeset
|
230 endif |
01358faf49c9
importdata.m: Overhaul column header detection (bug #58328).
Rik <rik@octave.org>
parents:
27978
diff
changeset
|
231 endif |
17358 | 232 endif |
28277
01358faf49c9
importdata.m: Overhaul column header detection (bug #58328).
Rik <rik@octave.org>
parents:
27978
diff
changeset
|
233 |
17357
44624eb20076
Speed up importdata() ASCII CSV processing using dlmread() as core
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
17325
diff
changeset
|
234 break; |
44624eb20076
Speed up importdata() ASCII CSV processing using dlmread() as core
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
17325
diff
changeset
|
235 endif |
44624eb20076
Speed up importdata() ASCII CSV processing using dlmread() as core
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
17325
diff
changeset
|
236 |
44624eb20076
Speed up importdata() ASCII CSV processing using dlmread() as core
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
17325
diff
changeset
|
237 endwhile |
44624eb20076
Speed up importdata() ASCII CSV processing using dlmread() as core
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
17325
diff
changeset
|
238 |
18663
271873b2f44f
importdata.m: Return cellstr of text when no numeric data found (bug #41630).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
18538
diff
changeset
|
239 if (row == -1) |
271873b2f44f
importdata.m: Return cellstr of text when no numeric data found (bug #41630).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
18538
diff
changeset
|
240 ## No numeric data found => return file as cellstr array |
271873b2f44f
importdata.m: Return cellstr of text when no numeric data found (bug #41630).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
18538
diff
changeset
|
241 ## 1. Read as char string |
271873b2f44f
importdata.m: Return cellstr of text when no numeric data found (bug #41630).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
18538
diff
changeset
|
242 fseek (fid, 0, "bof"); |
271873b2f44f
importdata.m: Return cellstr of text when no numeric data found (bug #41630).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
18538
diff
changeset
|
243 output = fread (fid, Inf, "*char")'; |
271873b2f44f
importdata.m: Return cellstr of text when no numeric data found (bug #41630).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
18538
diff
changeset
|
244 fclose (fid); |
271873b2f44f
importdata.m: Return cellstr of text when no numeric data found (bug #41630).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
18538
diff
changeset
|
245 ## 2. Find EOL type |
18681
99d1ef340de4
importdata.m: limit EOL search to first 4096 characters.
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
18663
diff
changeset
|
246 idx = find (output(1:min (4096, length (output))) == "\n", 1) - 1; |
18663
271873b2f44f
importdata.m: Return cellstr of text when no numeric data found (bug #41630).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
18538
diff
changeset
|
247 if (isindex (idx) && output(idx) == "\r") |
271873b2f44f
importdata.m: Return cellstr of text when no numeric data found (bug #41630).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
18538
diff
changeset
|
248 dlm = "\r\n"; |
271873b2f44f
importdata.m: Return cellstr of text when no numeric data found (bug #41630).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
18538
diff
changeset
|
249 else |
271873b2f44f
importdata.m: Return cellstr of text when no numeric data found (bug #41630).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
18538
diff
changeset
|
250 dlm = "\n"; |
271873b2f44f
importdata.m: Return cellstr of text when no numeric data found (bug #41630).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
18538
diff
changeset
|
251 endif |
271873b2f44f
importdata.m: Return cellstr of text when no numeric data found (bug #41630).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
18538
diff
changeset
|
252 ## 3. Split each line into a cell (column vector) |
271873b2f44f
importdata.m: Return cellstr of text when no numeric data found (bug #41630).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
18538
diff
changeset
|
253 output = strsplit (output, dlm)'; |
271873b2f44f
importdata.m: Return cellstr of text when no numeric data found (bug #41630).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
18538
diff
changeset
|
254 ## 4. Remove last cell (for files with -proper- EOL before EOF) |
271873b2f44f
importdata.m: Return cellstr of text when no numeric data found (bug #41630).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
18538
diff
changeset
|
255 if (isempty (output{end})) |
271873b2f44f
importdata.m: Return cellstr of text when no numeric data found (bug #41630).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
18538
diff
changeset
|
256 output(end) = []; |
271873b2f44f
importdata.m: Return cellstr of text when no numeric data found (bug #41630).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
18538
diff
changeset
|
257 endif |
271873b2f44f
importdata.m: Return cellstr of text when no numeric data found (bug #41630).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
18538
diff
changeset
|
258 ## 5. Return after setting some output data |
271873b2f44f
importdata.m: Return cellstr of text when no numeric data found (bug #41630).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
18538
diff
changeset
|
259 delimiter = ""; |
271873b2f44f
importdata.m: Return cellstr of text when no numeric data found (bug #41630).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
18538
diff
changeset
|
260 header_rows = numel (output); |
271873b2f44f
importdata.m: Return cellstr of text when no numeric data found (bug #41630).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
18538
diff
changeset
|
261 return; |
271873b2f44f
importdata.m: Return cellstr of text when no numeric data found (bug #41630).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
18538
diff
changeset
|
262 endif |
17357
44624eb20076
Speed up importdata() ASCII CSV processing using dlmread() as core
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
17325
diff
changeset
|
263 |
22796
1c73344fd348
importdata.m: Improve performance when reading text files (bug #49630).
Rik <rik@octave.org>
parents:
22755
diff
changeset
|
264 fclose (fid); |
1c73344fd348
importdata.m: Improve performance when reading text files (bug #49630).
Rik <rik@octave.org>
parents:
22755
diff
changeset
|
265 |
17358 | 266 if (num_header_rows >= 0) |
28357
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
267 ## User has defined a number of header rows which disagrees with the |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
268 ## auto-detected number. Print a warning. |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
269 if (num_header_rows < header_rows) |
28693
2bb050267d74
maint: Remove trailing spaces from code base.
Rik <rik@octave.org>
parents:
28563
diff
changeset
|
270 warning ("Octave:importdata:headerrows_mismatch", |
28357
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
271 "importdata: detected %d header rows, but HEADER_ROWS input configured %d rows", header_rows, num_header_rows); |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
272 endif |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
273 else |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
274 ## use the automatically detected number of header rows |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
275 num_header_rows = header_rows; |
17358 | 276 endif |
17357
44624eb20076
Speed up importdata() ASCII CSV processing using dlmread() as core
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
17325
diff
changeset
|
277 |
17358 | 278 ## Now, let the efficient built-in routine do the bulk of the work. |
279 if (delimiter == " ") | |
28357
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
280 output.data = dlmread (fname, "", num_header_rows, header_cols, |
17358 | 281 "emptyvalue", NA); |
282 else | |
28357
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
283 output.data = dlmread (fname, delimiter, num_header_rows, header_cols, |
17358 | 284 "emptyvalue", NA); |
17357
44624eb20076
Speed up importdata() ASCII CSV processing using dlmread() as core
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
17325
diff
changeset
|
285 endif |
44624eb20076
Speed up importdata() ASCII CSV processing using dlmread() as core
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
17325
diff
changeset
|
286 |
17358 | 287 ## Go back and correct any individual values that did not convert. |
28277
01358faf49c9
importdata.m: Overhaul column header detection (bug #58328).
Rik <rik@octave.org>
parents:
27978
diff
changeset
|
288 ## FIXME: This is only efficient when the number of bad conversions is small. |
01358faf49c9
importdata.m: Overhaul column header detection (bug #58328).
Rik <rik@octave.org>
parents:
27978
diff
changeset
|
289 ## Any file with 'rowheaders' will cause the for loop to execute over |
01358faf49c9
importdata.m: Overhaul column header detection (bug #58328).
Rik <rik@octave.org>
parents:
27978
diff
changeset
|
290 ## *every* line in the file. |
01358faf49c9
importdata.m: Overhaul column header detection (bug #58328).
Rik <rik@octave.org>
parents:
27978
diff
changeset
|
291 |
17358 | 292 na_idx = isna (output.data); |
17357
44624eb20076
Speed up importdata() ASCII CSV processing using dlmread() as core
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
17325
diff
changeset
|
293 if (header_cols > 0) |
17358 | 294 na_idx = [(true (rows (na_idx), header_cols)), na_idx]; |
17357
44624eb20076
Speed up importdata() ASCII CSV processing using dlmread() as core
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
17325
diff
changeset
|
295 endif |
17358 | 296 if (any (na_idx(:))) |
17357
44624eb20076
Speed up importdata() ASCII CSV processing using dlmread() as core
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
17325
diff
changeset
|
297 |
25873
75f7e8728e17
importdata.m: Correct import of NA in files with CRLF endings (bug #54622).
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
298 file_content = ostrsplit (fileread (fname), "\r\n", true); |
17357
44624eb20076
Speed up importdata() ASCII CSV processing using dlmread() as core
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
17325
diff
changeset
|
299 |
17358 | 300 na_rows = find (any (na_idx, 2)); |
28357
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
301 ## Prune text lines in header that were already collected |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
302 idx = (na_rows(1:min (header_rows, end)) + num_header_rows) <= header_rows; |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
303 na_rows(idx) = []; |
17358 | 304 for ridx = na_rows(:)' |
28357
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
305 row = file_content{ridx+num_header_rows}; |
17358 | 306 if (delimiter == " ") |
307 fields = regexp (strtrim (row), ' +', 'split'); | |
308 else | |
309 fields = ostrsplit (row, delimiter); | |
310 endif | |
19593
446c46af4b42
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
19293
diff
changeset
|
311 |
22735
6f111a0f32c3
importdata.m: Fix failing BIST test (bug #49546).
Rik <rik@octave.org>
parents:
22731
diff
changeset
|
312 missing_idx = na_idx(ridx,:); |
6f111a0f32c3
importdata.m: Fix failing BIST test (bug #49546).
Rik <rik@octave.org>
parents:
22731
diff
changeset
|
313 if (! size_equal (missing_idx, fields)) |
6f111a0f32c3
importdata.m: Fix failing BIST test (bug #49546).
Rik <rik@octave.org>
parents:
22731
diff
changeset
|
314 ## Fields completely missing at end of line. Replace with NA. |
6f111a0f32c3
importdata.m: Fix failing BIST test (bug #49546).
Rik <rik@octave.org>
parents:
22731
diff
changeset
|
315 col = columns (fields); |
28358
3c5304bbb71e
importdata.m: Changes to algorithm to remove some blank entries from textdata.
Rik <rik@octave.org>
parents:
28357
diff
changeset
|
316 ## FIXME: This code should be redundant because dlmread was called |
3c5304bbb71e
importdata.m: Changes to algorithm to remove some blank entries from textdata.
Rik <rik@octave.org>
parents:
28357
diff
changeset
|
317 ## with "emptyval", NA. Delete if there are no problems |
3c5304bbb71e
importdata.m: Changes to algorithm to remove some blank entries from textdata.
Rik <rik@octave.org>
parents:
28357
diff
changeset
|
318 ## detected after some time. Commented out: 5/23/2020. |
31253
a40c0b7aa376
maint: changes to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
30564
diff
changeset
|
319 ## output.data(ridx, (col+1):end) = NA; |
22735
6f111a0f32c3
importdata.m: Fix failing BIST test (bug #49546).
Rik <rik@octave.org>
parents:
22731
diff
changeset
|
320 missing_idx = missing_idx(1:col); |
6f111a0f32c3
importdata.m: Fix failing BIST test (bug #49546).
Rik <rik@octave.org>
parents:
22731
diff
changeset
|
321 endif |
6f111a0f32c3
importdata.m: Fix failing BIST test (bug #49546).
Rik <rik@octave.org>
parents:
22731
diff
changeset
|
322 text = fields(missing_idx); |
6f111a0f32c3
importdata.m: Fix failing BIST test (bug #49546).
Rik <rik@octave.org>
parents:
22731
diff
changeset
|
323 |
17358 | 324 text = text(! strcmpi (text, "NA")); # Remove valid "NA" entries |
28358
3c5304bbb71e
importdata.m: Changes to algorithm to remove some blank entries from textdata.
Rik <rik@octave.org>
parents:
28357
diff
changeset
|
325 text = text(! strcmpi (text, "")); # Remove empty entries |
17358 | 326 if (! isempty (text)) |
28277
01358faf49c9
importdata.m: Overhaul column header detection (bug #58328).
Rik <rik@octave.org>
parents:
27978
diff
changeset
|
327 output.textdata(end+1, 1:columns (text)) = text; |
17358 | 328 endif |
22735
6f111a0f32c3
importdata.m: Fix failing BIST test (bug #49546).
Rik <rik@octave.org>
parents:
22731
diff
changeset
|
329 |
28277
01358faf49c9
importdata.m: Overhaul column header detection (bug #58328).
Rik <rik@octave.org>
parents:
27978
diff
changeset
|
330 if (has_rowheaders) |
01358faf49c9
importdata.m: Overhaul column header detection (bug #58328).
Rik <rik@octave.org>
parents:
27978
diff
changeset
|
331 output.rowheaders(end+1, 1) = fields(1); |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
332 endif |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
333 endfor |
17358 | 334 |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
335 endif |
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
336 |
28277
01358faf49c9
importdata.m: Overhaul column header detection (bug #58328).
Rik <rik@octave.org>
parents:
27978
diff
changeset
|
337 ## Final cleanup to satisfy Matlab compatibility |
17357
44624eb20076
Speed up importdata() ASCII CSV processing using dlmread() as core
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
17325
diff
changeset
|
338 if (all (cellfun ("isempty", output.textdata))) |
44624eb20076
Speed up importdata() ASCII CSV processing using dlmread() as core
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
17325
diff
changeset
|
339 output = output.data; |
28358
3c5304bbb71e
importdata.m: Changes to algorithm to remove some blank entries from textdata.
Rik <rik@octave.org>
parents:
28357
diff
changeset
|
340 else |
3c5304bbb71e
importdata.m: Changes to algorithm to remove some blank entries from textdata.
Rik <rik@octave.org>
parents:
28357
diff
changeset
|
341 ## Text fields should be cell array of strings, rather than just cell. |
3c5304bbb71e
importdata.m: Changes to algorithm to remove some blank entries from textdata.
Rik <rik@octave.org>
parents:
28357
diff
changeset
|
342 try |
3c5304bbb71e
importdata.m: Changes to algorithm to remove some blank entries from textdata.
Rik <rik@octave.org>
parents:
28357
diff
changeset
|
343 output.textdata = cellstr (output.textdata); |
3c5304bbb71e
importdata.m: Changes to algorithm to remove some blank entries from textdata.
Rik <rik@octave.org>
parents:
28357
diff
changeset
|
344 end_try_catch |
3c5304bbb71e
importdata.m: Changes to algorithm to remove some blank entries from textdata.
Rik <rik@octave.org>
parents:
28357
diff
changeset
|
345 try |
3c5304bbb71e
importdata.m: Changes to algorithm to remove some blank entries from textdata.
Rik <rik@octave.org>
parents:
28357
diff
changeset
|
346 output.rowheaders = cellstr (output.rowheaders); |
3c5304bbb71e
importdata.m: Changes to algorithm to remove some blank entries from textdata.
Rik <rik@octave.org>
parents:
28357
diff
changeset
|
347 end_try_catch |
3c5304bbb71e
importdata.m: Changes to algorithm to remove some blank entries from textdata.
Rik <rik@octave.org>
parents:
28357
diff
changeset
|
348 try |
3c5304bbb71e
importdata.m: Changes to algorithm to remove some blank entries from textdata.
Rik <rik@octave.org>
parents:
28357
diff
changeset
|
349 output.colheaders = cellstr (output.colheaders); |
3c5304bbb71e
importdata.m: Changes to algorithm to remove some blank entries from textdata.
Rik <rik@octave.org>
parents:
28357
diff
changeset
|
350 end_try_catch |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
351 endif |
28358
3c5304bbb71e
importdata.m: Changes to algorithm to remove some blank entries from textdata.
Rik <rik@octave.org>
parents:
28357
diff
changeset
|
352 |
28357
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
353 if (num_header_rows != header_rows) |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
354 header_rows = num_header_rows; |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
355 endif |
15557
13206177060b
importdata.m: 3X speedup by using str2double rather than num2str.
Rik <rik@octave.org>
parents:
15555
diff
changeset
|
356 |
15546
3bf1e0da76b0
importdata: new function
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
diff
changeset
|
357 endfunction |
15560
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
358 |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
359 |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
360 %!test |
31788
b482ed13ac1a
doc: Use hyphen in "comma-separated list".
Rik <rik@octave.org>
parents:
31706
diff
changeset
|
361 %! ## Comma-separated values |
15560
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
362 %! A = [3.1 -7.2 0; 0.012 6.5 128]; |
19278
6ca096827123
Use tempname() rather than tmpnam() in core Octave.
Rik <rik@octave.org>
parents:
18681
diff
changeset
|
363 %! fn = tempname (); |
15560
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
364 %! fid = fopen (fn, "w"); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
365 %! 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
|
366 %! fclose (fid); |
17357
44624eb20076
Speed up importdata() ASCII CSV processing using dlmread() as core
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
17325
diff
changeset
|
367 %! [a1,d1,h1] = importdata (fn, ","); |
44624eb20076
Speed up importdata() ASCII CSV processing using dlmread() as core
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
17325
diff
changeset
|
368 %! [a2,d2,h2] = importdata (fn); |
15560
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
369 %! unlink (fn); |
17357
44624eb20076
Speed up importdata() ASCII CSV processing using dlmread() as core
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
17325
diff
changeset
|
370 %! assert (a1, A); |
44624eb20076
Speed up importdata() ASCII CSV processing using dlmread() as core
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
17325
diff
changeset
|
371 %! assert (d1, ","); |
44624eb20076
Speed up importdata() ASCII CSV processing using dlmread() as core
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
17325
diff
changeset
|
372 %! assert (h1, 0); |
44624eb20076
Speed up importdata() ASCII CSV processing using dlmread() as core
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
17325
diff
changeset
|
373 %! assert (a2, A); |
44624eb20076
Speed up importdata() ASCII CSV processing using dlmread() as core
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
17325
diff
changeset
|
374 %! assert (d2, ","); |
44624eb20076
Speed up importdata() ASCII CSV processing using dlmread() as core
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
17325
diff
changeset
|
375 %! assert (h2, 0); |
15560
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
376 |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
377 %!test |
17325
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
378 %! ## Tab separated values |
15560
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
379 %! A = [3.1 -7.2 0; 0.012 6.5 128]; |
19278
6ca096827123
Use tempname() rather than tmpnam() in core Octave.
Rik <rik@octave.org>
parents:
18681
diff
changeset
|
380 %! fn = tempname (); |
15560
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
381 %! fid = fopen (fn, "w"); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
382 %! 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
|
383 %! fclose (fid); |
17357
44624eb20076
Speed up importdata() ASCII CSV processing using dlmread() as core
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
17325
diff
changeset
|
384 %! [a1,d1,h1] = importdata (fn, "\t"); |
44624eb20076
Speed up importdata() ASCII CSV processing using dlmread() as core
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
17325
diff
changeset
|
385 %! [a2,d2,h2] = importdata (fn); |
15560
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
386 %! unlink (fn); |
17357
44624eb20076
Speed up importdata() ASCII CSV processing using dlmread() as core
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
17325
diff
changeset
|
387 %! assert (a1, A); |
44624eb20076
Speed up importdata() ASCII CSV processing using dlmread() as core
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
17325
diff
changeset
|
388 %! assert (d1, "\t"); |
44624eb20076
Speed up importdata() ASCII CSV processing using dlmread() as core
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
17325
diff
changeset
|
389 %! assert (h1, 0); |
44624eb20076
Speed up importdata() ASCII CSV processing using dlmread() as core
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
17325
diff
changeset
|
390 %! assert (a2, A); |
44624eb20076
Speed up importdata() ASCII CSV processing using dlmread() as core
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
17325
diff
changeset
|
391 %! assert (d2, "\t"); |
44624eb20076
Speed up importdata() ASCII CSV processing using dlmread() as core
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
17325
diff
changeset
|
392 %! assert (h2, 0); |
15560
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
393 |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
394 %!test |
17325
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
395 %! ## Space separated values, using multiple spaces to align in columns. |
15560
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
396 %! A = [3.1 -7.2 0; 0.012 6.5 128]; |
19278
6ca096827123
Use tempname() rather than tmpnam() in core Octave.
Rik <rik@octave.org>
parents:
18681
diff
changeset
|
397 %! fn = tempname (); |
15560
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
398 %! fid = fopen (fn, "w"); |
17325
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
399 %! fprintf (fid, "%10.3f %10.3f %10.3f\n", A'); |
15560
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
400 %! fclose (fid); |
17357
44624eb20076
Speed up importdata() ASCII CSV processing using dlmread() as core
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
17325
diff
changeset
|
401 %! [a1,d1,h1] = importdata (fn, " "); |
44624eb20076
Speed up importdata() ASCII CSV processing using dlmread() as core
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
17325
diff
changeset
|
402 %! [a2,d2,h2] = importdata (fn); |
15560
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
403 %! unlink (fn); |
17357
44624eb20076
Speed up importdata() ASCII CSV processing using dlmread() as core
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
17325
diff
changeset
|
404 %! assert (a1, A); |
44624eb20076
Speed up importdata() ASCII CSV processing using dlmread() as core
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
17325
diff
changeset
|
405 %! assert (d1, " "); |
44624eb20076
Speed up importdata() ASCII CSV processing using dlmread() as core
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
17325
diff
changeset
|
406 %! assert (h1, 0); |
44624eb20076
Speed up importdata() ASCII CSV processing using dlmread() as core
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
17325
diff
changeset
|
407 %! assert (a2, A); |
44624eb20076
Speed up importdata() ASCII CSV processing using dlmread() as core
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
17325
diff
changeset
|
408 %! assert (d2, " "); |
44624eb20076
Speed up importdata() ASCII CSV processing using dlmread() as core
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
17325
diff
changeset
|
409 %! assert (h2, 0); |
15560
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
410 |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
411 %!test |
17358 | 412 %! ## No separator, 1 column of data only |
413 %! A = [3.1;-7.2;0;0.012;6.5;128]; | |
19278
6ca096827123
Use tempname() rather than tmpnam() in core Octave.
Rik <rik@octave.org>
parents:
18681
diff
changeset
|
414 %! fn = tempname (); |
17358 | 415 %! fid = fopen (fn, "w"); |
416 %! fprintf (fid, "%f\n", A); | |
417 %! fclose (fid); | |
418 %! [a1,d1,h1] = importdata (fn, ""); | |
419 %! [a2,d2,h2] = importdata (fn); | |
420 %! unlink (fn); | |
421 %! assert (a1, A); | |
422 %! assert (d1, ""); | |
423 %! assert (h1, 0); | |
424 %! assert (a2, A); | |
425 %! assert (d2, ""); | |
426 %! assert (h2, 0); | |
427 | |
428 %!test | |
17325
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
429 %! ## Header text |
15560
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
430 %! A.data = [3.1 -7.2 0; 0.012 6.5 128]; |
17245
7babcdb9bc13
Use ... instead of \ for line continuation marker.
Stefan Mahr <dac922@gmx.de>
parents:
16933
diff
changeset
|
431 %! 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
|
432 %! "this row does not contain any data, but the next one does."}; |
19278
6ca096827123
Use tempname() rather than tmpnam() in core Octave.
Rik <rik@octave.org>
parents:
18681
diff
changeset
|
433 %! fn = tempname (); |
15560
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
434 %! fid = fopen (fn, "w"); |
17325
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
435 %! fprintf (fid, "%s\n", A.textdata{:}); |
15560
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
436 %! 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
|
437 %! fclose (fid); |
17325
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
438 %! [a,d,h] = importdata (fn, '\t'); |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
439 %! unlink (fn); |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
440 %! assert (a, A); |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
441 %! assert (d, "\t"); |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
442 %! assert (h, 2); |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
443 |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
444 %!test |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
445 %! ## Column headers, only last row is returned in colheaders |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
446 %! A.data = [3.1 -7.2 0; 0.012 6.5 128]; |
17357
44624eb20076
Speed up importdata() ASCII CSV processing using dlmread() as core
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
17325
diff
changeset
|
447 %! A.textdata = {"Label1\tLabel2\tLabel3"; |
28277
01358faf49c9
importdata.m: Overhaul column header detection (bug #58328).
Rik <rik@octave.org>
parents:
27978
diff
changeset
|
448 %! ""; |
17358 | 449 %! "col 1\tcol 2\tcol 3"}; |
450 %! A.colheaders = {"col 1", "col 2", "col 3"}; | |
19278
6ca096827123
Use tempname() rather than tmpnam() in core Octave.
Rik <rik@octave.org>
parents:
18681
diff
changeset
|
451 %! fn = tempname (); |
17325
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
452 %! fid = fopen (fn, "w"); |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
453 %! fprintf (fid, "%s\n", A.textdata{:}); |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
454 %! fputs (fid, "3.1\t-7.2\t0\n0.012\t6.5\t128"); |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
455 %! fclose (fid); |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
456 %! [a,d,h] = importdata (fn, '\t'); |
15560
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
457 %! unlink (fn); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
458 %! assert (a, A); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
459 %! assert (d, "\t"); |
28277
01358faf49c9
importdata.m: Overhaul column header detection (bug #58328).
Rik <rik@octave.org>
parents:
27978
diff
changeset
|
460 %! assert (h, 3); |
15560
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
461 |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
462 %!test |
17325
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
463 %! ## Row headers |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
464 %! A.data = [3.1 -7.2 0; 0.012 6.5 128]; |
17357
44624eb20076
Speed up importdata() ASCII CSV processing using dlmread() as core
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
17325
diff
changeset
|
465 %! A.textdata = {"row1"; "row2"}; |
44624eb20076
Speed up importdata() ASCII CSV processing using dlmread() as core
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
17325
diff
changeset
|
466 %! A.rowheaders = A.textdata; |
19278
6ca096827123
Use tempname() rather than tmpnam() in core Octave.
Rik <rik@octave.org>
parents:
18681
diff
changeset
|
467 %! fn = tempname (); |
17325
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
468 %! fid = fopen (fn, "w"); |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
469 %! fputs (fid, "row1\t3.1\t-7.2\t0\nrow2\t0.012\t6.5\t128"); |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
470 %! fclose (fid); |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
471 %! [a,d,h] = importdata (fn, '\t'); |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
472 %! unlink (fn); |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
473 %! assert (a, A); |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
474 %! assert (d, "\t"); |
17357
44624eb20076
Speed up importdata() ASCII CSV processing using dlmread() as core
Daniel J Sebald <daniel.sebald@ieee.org>
parents:
17325
diff
changeset
|
475 %! assert (h, 0); |
17325
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
476 |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
477 %!test |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
478 %! ## Row/Column headers and Header Text |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
479 %! A.data = [3.1 -7.2 0; 0.012 6.5 128]; |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
480 %! A.textdata = {"This is introductory header text" |
28277
01358faf49c9
importdata.m: Overhaul column header detection (bug #58328).
Rik <rik@octave.org>
parents:
27978
diff
changeset
|
481 %! "col1\tcol2\tcol3" |
17325
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
482 %! "row1" |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
483 %! "row2"}; |
28277
01358faf49c9
importdata.m: Overhaul column header detection (bug #58328).
Rik <rik@octave.org>
parents:
27978
diff
changeset
|
484 %! A.rowheaders = A.textdata(3:4); |
01358faf49c9
importdata.m: Overhaul column header detection (bug #58328).
Rik <rik@octave.org>
parents:
27978
diff
changeset
|
485 %! A.colheaders = {"col1", "col2", "col3"}; |
19278
6ca096827123
Use tempname() rather than tmpnam() in core Octave.
Rik <rik@octave.org>
parents:
18681
diff
changeset
|
486 %! fn = tempname (); |
17325
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
487 %! fid = fopen (fn, "w"); |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
488 %! fprintf (fid, "%s\n", A.textdata{1:2}); |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
489 %! fputs (fid, "row1\t3.1\t-7.2\t0\nrow2\t0.012\t6.5\t128"); |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
490 %! fclose (fid); |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
491 %! [a,d,h] = importdata (fn, '\t'); |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
492 %! unlink (fn); |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
493 %! assert (a, A); |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
494 %! assert (d, "\t"); |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
495 %! assert (h, 2); |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
496 |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
497 %!test |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
498 %! ## Ignore empty rows containing only spaces |
15560
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
499 %! A = [3.1 -7.2 0; 0.012 6.5 128]; |
19278
6ca096827123
Use tempname() rather than tmpnam() in core Octave.
Rik <rik@octave.org>
parents:
18681
diff
changeset
|
500 %! fn = tempname (); |
15560
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
501 %! fid = fopen (fn, "w"); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
502 %! 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
|
503 %! fputs (fid, " "); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
504 %! 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
|
505 %! fclose (fid); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
506 %! [a,d,h] = importdata (fn, " "); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
507 %! unlink (fn); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
508 %! assert (a, A); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
509 %! assert (d, " "); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
510 %! assert (h, 0); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
511 |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
512 %!test |
17325
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
513 %! ## Exponentials |
15560
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
514 %! A = [3.1 -7.2 0; 0.012 6.5 128]; |
19278
6ca096827123
Use tempname() rather than tmpnam() in core Octave.
Rik <rik@octave.org>
parents:
18681
diff
changeset
|
515 %! fn = tempname (); |
15560
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
516 %! fid = fopen (fn, "w"); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
517 %! 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
|
518 %! fclose (fid); |
17325
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
519 %! [a,d,h] = importdata (fn, '\t'); |
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
|
520 %! 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
|
521 %! 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
|
522 %! 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
|
523 %! 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
|
524 |
31989
9b36d30d27e3
Make tests that fail with libc++ dependent on whether Octave uses it.
Markus Mützel <markus.muetzel@gmx.de>
parents:
31788
diff
changeset
|
525 %!testif ; ! __have_feature__ ("LLVM_LIBCXX") |
24477
e8cb11de9383
test: Mark certain bugs as xtest when run on Mac platforms (bug #52627).
Rik <rik@octave.org>
parents:
23573
diff
changeset
|
526 %! ## Complex numbers |
e8cb11de9383
test: Mark certain bugs as xtest when run on Mac platforms (bug #52627).
Rik <rik@octave.org>
parents:
23573
diff
changeset
|
527 %! A = [3.1 -7.2 0-3.4i; 0.012 -6.5+7.2i 128]; |
e8cb11de9383
test: Mark certain bugs as xtest when run on Mac platforms (bug #52627).
Rik <rik@octave.org>
parents:
23573
diff
changeset
|
528 %! fn = tempname (); |
e8cb11de9383
test: Mark certain bugs as xtest when run on Mac platforms (bug #52627).
Rik <rik@octave.org>
parents:
23573
diff
changeset
|
529 %! fid = fopen (fn, "w"); |
e8cb11de9383
test: Mark certain bugs as xtest when run on Mac platforms (bug #52627).
Rik <rik@octave.org>
parents:
23573
diff
changeset
|
530 %! fputs (fid, "3.1\t-7.2\t0-3.4i\n0.012\t-6.5+7.2i\t128"); |
e8cb11de9383
test: Mark certain bugs as xtest when run on Mac platforms (bug #52627).
Rik <rik@octave.org>
parents:
23573
diff
changeset
|
531 %! fclose (fid); |
e8cb11de9383
test: Mark certain bugs as xtest when run on Mac platforms (bug #52627).
Rik <rik@octave.org>
parents:
23573
diff
changeset
|
532 %! [a,d,h] = importdata (fn, '\t'); |
e8cb11de9383
test: Mark certain bugs as xtest when run on Mac platforms (bug #52627).
Rik <rik@octave.org>
parents:
23573
diff
changeset
|
533 %! unlink (fn); |
e8cb11de9383
test: Mark certain bugs as xtest when run on Mac platforms (bug #52627).
Rik <rik@octave.org>
parents:
23573
diff
changeset
|
534 %! assert (a, A); |
e8cb11de9383
test: Mark certain bugs as xtest when run on Mac platforms (bug #52627).
Rik <rik@octave.org>
parents:
23573
diff
changeset
|
535 %! assert (d, "\t"); |
e8cb11de9383
test: Mark certain bugs as xtest when run on Mac platforms (bug #52627).
Rik <rik@octave.org>
parents:
23573
diff
changeset
|
536 %! assert (h, 0); |
e8cb11de9383
test: Mark certain bugs as xtest when run on Mac platforms (bug #52627).
Rik <rik@octave.org>
parents:
23573
diff
changeset
|
537 |
31989
9b36d30d27e3
Make tests that fail with libc++ dependent on whether Octave uses it.
Markus Mützel <markus.muetzel@gmx.de>
parents:
31788
diff
changeset
|
538 %!testif HAVE_LLVM_LIBCXX <47413> |
9b36d30d27e3
Make tests that fail with libc++ dependent on whether Octave uses it.
Markus Mützel <markus.muetzel@gmx.de>
parents:
31788
diff
changeset
|
539 %! ## Same test code as above, intended only for test statistics with libc++. |
17325
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
540 %! ## Complex numbers |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
541 %! A = [3.1 -7.2 0-3.4i; 0.012 -6.5+7.2i 128]; |
19278
6ca096827123
Use tempname() rather than tmpnam() in core Octave.
Rik <rik@octave.org>
parents:
18681
diff
changeset
|
542 %! fn = tempname (); |
15560
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
543 %! fid = fopen (fn, "w"); |
17325
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
544 %! fputs (fid, "3.1\t-7.2\t0-3.4i\n0.012\t-6.5+7.2i\t128"); |
15560
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
545 %! fclose (fid); |
17325
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
546 %! [a,d,h] = importdata (fn, '\t'); |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
547 %! unlink (fn); |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
548 %! assert (a, A); |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
549 %! assert (d, "\t"); |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
550 %! assert (h, 0); |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
551 |
17358 | 552 %!test |
17325
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
553 %! ## Exceptional values (Inf, NaN, NA) |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
554 %! A = [3.1 Inf NA; -Inf NaN 128]; |
19278
6ca096827123
Use tempname() rather than tmpnam() in core Octave.
Rik <rik@octave.org>
parents:
18681
diff
changeset
|
555 %! fn = tempname (); |
17325
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
556 %! fid = fopen (fn, "w"); |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
557 %! fputs (fid, "3.1\tInf\tNA\n-Inf\tNaN\t128"); |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
558 %! fclose (fid); |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
559 %! [a,d,h] = importdata (fn, '\t'); |
15560
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
560 %! unlink (fn); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
561 %! assert (a, A); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
562 %! assert (d, "\t"); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
563 %! assert (h, 0); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
564 |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
565 %!test |
17358 | 566 %! ## Missing values and Text Values |
567 %! A.data = [3.1 NA 0; 0.012 NA 128]; | |
28358
3c5304bbb71e
importdata.m: Changes to algorithm to remove some blank entries from textdata.
Rik <rik@octave.org>
parents:
28357
diff
changeset
|
568 %! A.textdata = {"NO DATA"}; |
19278
6ca096827123
Use tempname() rather than tmpnam() in core Octave.
Rik <rik@octave.org>
parents:
18681
diff
changeset
|
569 %! fn = tempname (); |
15560
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
570 %! fid = fopen (fn, "w"); |
17358 | 571 %! fputs (fid, "3.1\t\t0\n0.012\tNO DATA\t128"); |
15560
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
572 %! fclose (fid); |
17325
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
573 %! [a,d,h] = importdata (fn, '\t'); |
15560
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
574 %! unlink (fn); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
575 %! assert (a, A); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
576 %! assert (d, "\t"); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
577 %! assert (h, 0); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
578 |
17358 | 579 %!#test |
17325
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
580 %! ## CRLF for line breaks |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
581 %! A = [3.1 -7.2 0; 0.012 6.5 128]; |
19278
6ca096827123
Use tempname() rather than tmpnam() in core Octave.
Rik <rik@octave.org>
parents:
18681
diff
changeset
|
582 %! fn = tempname (); |
17325
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
583 %! fid = fopen (fn, "w"); |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
584 %! fputs (fid, "3.1\t-7.2\t0\r\n0.012\t6.5\t128"); |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
585 %! fclose (fid); |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
586 %! [a,d,h] = importdata (fn, '\t'); |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
587 %! unlink (fn); |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
588 %! assert (a, A); |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
589 %! assert (d, "\t"); |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
590 %! assert (h, 0); |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
591 |
17358 | 592 %!#test |
17325
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
593 %! ## CR for line breaks |
16653
1cfa3a49247f
importdata.m: Added Carriage Return as possible line break character.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15847
diff
changeset
|
594 %! A = [3.1 -7.2 0; 0.012 6.5 128]; |
19278
6ca096827123
Use tempname() rather than tmpnam() in core Octave.
Rik <rik@octave.org>
parents:
18681
diff
changeset
|
595 %! fn = tempname (); |
16653
1cfa3a49247f
importdata.m: Added Carriage Return as possible line break character.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15847
diff
changeset
|
596 %! 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
|
597 %! 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
|
598 %! fclose (fid); |
17325
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
599 %! [a,d,h] = importdata (fn, '\t'); |
16653
1cfa3a49247f
importdata.m: Added Carriage Return as possible line break character.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15847
diff
changeset
|
600 %! unlink (fn); |
1cfa3a49247f
importdata.m: Added Carriage Return as possible line break character.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15847
diff
changeset
|
601 %! assert (a, A); |
1cfa3a49247f
importdata.m: Added Carriage Return as possible line break character.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15847
diff
changeset
|
602 %! assert (d, "\t"); |
1cfa3a49247f
importdata.m: Added Carriage Return as possible line break character.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15847
diff
changeset
|
603 %! assert (h, 0); |
1cfa3a49247f
importdata.m: Added Carriage Return as possible line break character.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15847
diff
changeset
|
604 |
23573
1b4f4ec53b4a
use new script to tag fixed bugs in tests
John W. Eaton <jwe@octave.org>
parents:
23572
diff
changeset
|
605 %!test <*43393> |
22489
93ea313301f9
test: Add bug ids (<#####>) to BIST tests.
Rik <rik@octave.org>
parents:
22323
diff
changeset
|
606 %! ## Distinguish double from complex when no delimiter is supplied |
25006
ddb4bc5fccaa
Replace tmpnam() with tempname() in core Octave.
Rik <rik@octave.org>
parents:
24534
diff
changeset
|
607 %! fn = tempname (); |
19293
8d7e760bfa68
importdata.m: better regexp pattern to assess delimiter (bug #43393)
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
18532
diff
changeset
|
608 %! fid = fopen (fn, "w"); |
8d7e760bfa68
importdata.m: better regexp pattern to assess delimiter (bug #43393)
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
18532
diff
changeset
|
609 %! fputs (fid, "2.0000e+02 4.0000e-04"); |
8d7e760bfa68
importdata.m: better regexp pattern to assess delimiter (bug #43393)
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
18532
diff
changeset
|
610 %! fclose (fid); |
8d7e760bfa68
importdata.m: better regexp pattern to assess delimiter (bug #43393)
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
18532
diff
changeset
|
611 %! [a, d, h] = importdata (fn); |
8d7e760bfa68
importdata.m: better regexp pattern to assess delimiter (bug #43393)
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
18532
diff
changeset
|
612 %! unlink (fn); |
8d7e760bfa68
importdata.m: better regexp pattern to assess delimiter (bug #43393)
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
18532
diff
changeset
|
613 %! assert (a, [2e2, 4e-4]); |
8d7e760bfa68
importdata.m: better regexp pattern to assess delimiter (bug #43393)
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
18532
diff
changeset
|
614 %! assert (d, " "); |
8d7e760bfa68
importdata.m: better regexp pattern to assess delimiter (bug #43393)
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
18532
diff
changeset
|
615 %! assert (h, 0); |
8d7e760bfa68
importdata.m: better regexp pattern to assess delimiter (bug #43393)
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
18532
diff
changeset
|
616 |
19301 | 617 %!test |
18663
271873b2f44f
importdata.m: Return cellstr of text when no numeric data found (bug #41630).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
18538
diff
changeset
|
618 %! ## Only text / no numeric data; \n as EOL |
19278
6ca096827123
Use tempname() rather than tmpnam() in core Octave.
Rik <rik@octave.org>
parents:
18681
diff
changeset
|
619 %! fn = tempname (); |
18663
271873b2f44f
importdata.m: Return cellstr of text when no numeric data found (bug #41630).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
18538
diff
changeset
|
620 %! fid = fopen (fn, "w"); |
271873b2f44f
importdata.m: Return cellstr of text when no numeric data found (bug #41630).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
18538
diff
changeset
|
621 %! fputs (fid, "aaaa 11\nbbbbb 22\nccccc 3\n"); |
271873b2f44f
importdata.m: Return cellstr of text when no numeric data found (bug #41630).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
18538
diff
changeset
|
622 %! fclose (fid); |
271873b2f44f
importdata.m: Return cellstr of text when no numeric data found (bug #41630).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
18538
diff
changeset
|
623 %! [a, d, h] = importdata (fn); |
271873b2f44f
importdata.m: Return cellstr of text when no numeric data found (bug #41630).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
18538
diff
changeset
|
624 %! unlink (fn); |
271873b2f44f
importdata.m: Return cellstr of text when no numeric data found (bug #41630).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
18538
diff
changeset
|
625 %! assert (a, {"aaaa 11"; "bbbbb 22"; "ccccc 3"}); |
271873b2f44f
importdata.m: Return cellstr of text when no numeric data found (bug #41630).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
18538
diff
changeset
|
626 %! assert (d, ""); |
271873b2f44f
importdata.m: Return cellstr of text when no numeric data found (bug #41630).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
18538
diff
changeset
|
627 %! assert (h, 3); |
271873b2f44f
importdata.m: Return cellstr of text when no numeric data found (bug #41630).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
18538
diff
changeset
|
628 |
271873b2f44f
importdata.m: Return cellstr of text when no numeric data found (bug #41630).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
18538
diff
changeset
|
629 %!test |
271873b2f44f
importdata.m: Return cellstr of text when no numeric data found (bug #41630).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
18538
diff
changeset
|
630 %! ## Only text / no numeric data; \r\n as EOL; missing last EOL before EOF |
19278
6ca096827123
Use tempname() rather than tmpnam() in core Octave.
Rik <rik@octave.org>
parents:
18681
diff
changeset
|
631 %! fn = tempname (); |
18663
271873b2f44f
importdata.m: Return cellstr of text when no numeric data found (bug #41630).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
18538
diff
changeset
|
632 %! fid = fopen (fn, "w"); |
271873b2f44f
importdata.m: Return cellstr of text when no numeric data found (bug #41630).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
18538
diff
changeset
|
633 %! fputs (fid, "aaaa 11\r\nbbbbb 22\r\nccccc 3"); |
271873b2f44f
importdata.m: Return cellstr of text when no numeric data found (bug #41630).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
18538
diff
changeset
|
634 %! fclose (fid); |
271873b2f44f
importdata.m: Return cellstr of text when no numeric data found (bug #41630).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
18538
diff
changeset
|
635 %! [a, d, h] = importdata (fn); |
271873b2f44f
importdata.m: Return cellstr of text when no numeric data found (bug #41630).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
18538
diff
changeset
|
636 %! unlink (fn); |
271873b2f44f
importdata.m: Return cellstr of text when no numeric data found (bug #41630).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
18538
diff
changeset
|
637 %! assert (a, {"aaaa 11"; "bbbbb 22"; "ccccc 3"}); |
271873b2f44f
importdata.m: Return cellstr of text when no numeric data found (bug #41630).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
18538
diff
changeset
|
638 %! assert (d, ""); |
271873b2f44f
importdata.m: Return cellstr of text when no numeric data found (bug #41630).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
18538
diff
changeset
|
639 %! assert (h, 3); |
271873b2f44f
importdata.m: Return cellstr of text when no numeric data found (bug #41630).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
18538
diff
changeset
|
640 |
28357
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
641 %!test <*58294> |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
642 %! ## Varying values of header lines field |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
643 %! fn = tempname (); |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
644 %! fid = fopen (fn, "w"); |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
645 %! fputs (fid, "header1\nheader2\n3.1\n4.2"); |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
646 %! fclose (fid); |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
647 %! warning ("off", "Octave:importdata:headerrows_mismatch", "local"); |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
648 %! ## Base import |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
649 %! [a, d, h] = importdata (fn, ""); |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
650 %! assert (a.data, [3.1; 4.2]); |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
651 %! assert (a.textdata, {"header1"; "header2"}); |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
652 %! assert (h, 2); |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
653 %! ## Import with 0 header lines |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
654 %! [a, d, h] = importdata (fn, "", 0); |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
655 %! assert (a.data, [NA; NA; 3.1; 4.2]); |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
656 %! assert (a.textdata, {"header1"; "header2"}); |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
657 %! assert (h, 0); |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
658 %! ## Import with 1 header lines |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
659 %! [a, d, h] = importdata (fn, "", 1); |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
660 %! assert (a.data, [NA; 3.1; 4.2]); |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
661 %! assert (a.textdata, {"header1"; "header2"}); |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
662 %! assert (h, 1); |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
663 %! ## Import with 3 header lines |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
664 %! [a, d, h] = importdata (fn, "", 3); |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
665 %! assert (a.data, [4.2]); |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
666 %! assert (a.textdata, {"header1"; "header2"; "3.1"}); |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
667 %! assert (h, 3); |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
668 %! unlink (fn); |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
669 |
28896
90fea9cc9caa
test: Add expected error message <Invalid call> to BIST tests for nargin.
Rik <rik@octave.org>
parents:
28789
diff
changeset
|
670 ## Test input validation |
90fea9cc9caa
test: Add expected error message <Invalid call> to BIST tests for nargin.
Rik <rik@octave.org>
parents:
28789
diff
changeset
|
671 %!error <Invalid call> importdata () |
17358 | 672 %!error <FNAME must be a string> importdata (1) |
673 %!error <option -pastespecial not implemented> importdata ("-pastespecial") | |
674 %!error <DELIMITER must be a single character> importdata ("foo", 1) | |
675 %!error <DELIMITER must be a single character> importdata ("foo", "ab") | |
676 %!error <HEADER_ROWS must be an integer> importdata ("foo", " ", "1") | |
677 %!error <HEADER_ROWS must be an integer> importdata ("foo", " ", 1.5) | |
678 %!error <not implemented for file format .avi> importdata ("foo.avi") | |
28357
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
679 %!warning <detected 2 header rows, but HEADER_ROWS input configured 1 rows> |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
680 %! fn = tempname (); |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
681 %! fid = fopen (fn, "w"); |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
682 %! fputs (fid, "header1\nheader2\n3.1"); |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
683 %! fclose (fid); |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
684 %! a = importdata (fn, "", 1); |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
685 %! unlink (fn); |