Mercurial > octave
annotate scripts/io/importdata.m @ 30564:796f54d4ddbf stable
update Octave Project Developers copyright for the new year
In files that have the "Octave Project Developers" copyright notice,
update for 2021.
In all .txi and .texi files except gpl.txi and gpl.texi in the
doc/liboctave and doc/interpreter directories, change the copyright
to "Octave Project Developers", the same as used for other source
files. Update copyright notices for 2022 (not done since 2019). For
gpl.txi and gpl.texi, change the copyright notice to be "Free Software
Foundation, Inc." and leave the date at 2007 only because this file
only contains the text of the GPL, not anything created by the Octave
Project Developers.
Add Paul Thomas to contributors.in.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Tue, 28 Dec 2021 18:22:40 -0500 |
parents | 76269aa97398 |
children | a40c0b7aa376 |
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 ## |
30564
796f54d4ddbf
update Octave Project Developers copyright for the new year
John W. Eaton <jwe@octave.org>
parents:
29494
diff
changeset
|
3 ## Copyright (C) 2012-2022 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. |
3c5304bbb71e
importdata.m: Changes to algorithm to remove some blank entries from textdata.
Rik <rik@octave.org>
parents:
28357
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 |
17325
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
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 |
24477
e8cb11de9383
test: Mark certain bugs as xtest when run on Mac platforms (bug #52627).
Rik <rik@octave.org>
parents:
23573
diff
changeset
|
525 %!testif ; ! ismac () |
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 |
29494
76269aa97398
if bug number is supplied, prefer '%!test' over '%!xtest'
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
538 %!test <47413> |
24477
e8cb11de9383
test: Mark certain bugs as xtest when run on Mac platforms (bug #52627).
Rik <rik@octave.org>
parents:
23573
diff
changeset
|
539 %! ## Same test code as above, but intended only for test statistics on Mac. |
e8cb11de9383
test: Mark certain bugs as xtest when run on Mac platforms (bug #52627).
Rik <rik@octave.org>
parents:
23573
diff
changeset
|
540 %! if (! ismac ()), return; endif |
17325
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
541 %! ## Complex numbers |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
542 %! 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
|
543 %! fn = tempname (); |
15560
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
544 %! fid = fopen (fn, "w"); |
17325
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
545 %! 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
|
546 %! fclose (fid); |
17325
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
547 %! [a,d,h] = importdata (fn, '\t'); |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
548 %! unlink (fn); |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
549 %! assert (a, A); |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
550 %! assert (d, "\t"); |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
551 %! assert (h, 0); |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
552 |
17358 | 553 %!test |
17325
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
554 %! ## Exceptional values (Inf, NaN, NA) |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
555 %! 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
|
556 %! fn = tempname (); |
17325
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
557 %! fid = fopen (fn, "w"); |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
558 %! 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
|
559 %! fclose (fid); |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
560 %! [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
|
561 %! unlink (fn); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
562 %! assert (a, A); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
563 %! assert (d, "\t"); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
564 %! assert (h, 0); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
565 |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
566 %!test |
17358 | 567 %! ## Missing values and Text Values |
568 %! 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
|
569 %! A.textdata = {"NO DATA"}; |
19278
6ca096827123
Use tempname() rather than tmpnam() in core Octave.
Rik <rik@octave.org>
parents:
18681
diff
changeset
|
570 %! fn = tempname (); |
15560
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
571 %! fid = fopen (fn, "w"); |
17358 | 572 %! 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
|
573 %! fclose (fid); |
17325
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
574 %! [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
|
575 %! unlink (fn); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
576 %! assert (a, A); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
577 %! assert (d, "\t"); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
578 %! assert (h, 0); |
305ad0a215ba
importdata.m: Added tests and made small corrections.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15557
diff
changeset
|
579 |
17358 | 580 %!#test |
17325
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
581 %! ## CRLF for line breaks |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
582 %! 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
|
583 %! fn = tempname (); |
17325
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
584 %! fid = fopen (fn, "w"); |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
585 %! 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
|
586 %! fclose (fid); |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
587 %! [a,d,h] = importdata (fn, '\t'); |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
588 %! unlink (fn); |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
589 %! assert (a, A); |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
590 %! assert (d, "\t"); |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
591 %! assert (h, 0); |
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
592 |
17358 | 593 %!#test |
17325
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
594 %! ## 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
|
595 %! 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
|
596 %! fn = tempname (); |
16653
1cfa3a49247f
importdata.m: Added Carriage Return as possible line break character.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15847
diff
changeset
|
597 %! 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
|
598 %! 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
|
599 %! fclose (fid); |
17325
8cfc28809a07
importdata.m: Add %!tests for colheaders and rowheaders.
Rik <rik@octave.org>
parents:
17245
diff
changeset
|
600 %! [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
|
601 %! unlink (fn); |
1cfa3a49247f
importdata.m: Added Carriage Return as possible line break character.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15847
diff
changeset
|
602 %! assert (a, A); |
1cfa3a49247f
importdata.m: Added Carriage Return as possible line break character.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15847
diff
changeset
|
603 %! assert (d, "\t"); |
1cfa3a49247f
importdata.m: Added Carriage Return as possible line break character.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15847
diff
changeset
|
604 %! assert (h, 0); |
1cfa3a49247f
importdata.m: Added Carriage Return as possible line break character.
Erik Kjellson <erikiiofph7@users.sourceforge.net>
parents:
15847
diff
changeset
|
605 |
23573
1b4f4ec53b4a
use new script to tag fixed bugs in tests
John W. Eaton <jwe@octave.org>
parents:
23572
diff
changeset
|
606 %!test <*43393> |
22489
93ea313301f9
test: Add bug ids (<#####>) to BIST tests.
Rik <rik@octave.org>
parents:
22323
diff
changeset
|
607 %! ## 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
|
608 %! fn = tempname (); |
19293
8d7e760bfa68
importdata.m: better regexp pattern to assess delimiter (bug #43393)
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
18532
diff
changeset
|
609 %! 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
|
610 %! 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
|
611 %! fclose (fid); |
8d7e760bfa68
importdata.m: better regexp pattern to assess delimiter (bug #43393)
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
18532
diff
changeset
|
612 %! [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
|
613 %! unlink (fn); |
8d7e760bfa68
importdata.m: better regexp pattern to assess delimiter (bug #43393)
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
18532
diff
changeset
|
614 %! 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
|
615 %! assert (d, " "); |
8d7e760bfa68
importdata.m: better regexp pattern to assess delimiter (bug #43393)
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
18532
diff
changeset
|
616 %! assert (h, 0); |
8d7e760bfa68
importdata.m: better regexp pattern to assess delimiter (bug #43393)
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
18532
diff
changeset
|
617 |
19301 | 618 %!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
|
619 %! ## 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
|
620 %! 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
|
621 %! 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
|
622 %! 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
|
623 %! 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
|
624 %! [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
|
625 %! 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
|
626 %! 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
|
627 %! 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
|
628 %! 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
|
629 |
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 %!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
|
631 %! ## 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
|
632 %! 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
|
633 %! 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
|
634 %! 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
|
635 %! 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
|
636 %! [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
|
637 %! 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
|
638 %! 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
|
639 %! 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
|
640 %! 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
|
641 |
28357
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
642 %!test <*58294> |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
643 %! ## Varying values of header lines field |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
644 %! fn = tempname (); |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
645 %! fid = fopen (fn, "w"); |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
646 %! 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
|
647 %! fclose (fid); |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
648 %! 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
|
649 %! ## Base import |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
650 %! [a, d, h] = importdata (fn, ""); |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
651 %! 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
|
652 %! assert (a.textdata, {"header1"; "header2"}); |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
653 %! assert (h, 2); |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
654 %! ## Import with 0 header lines |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
655 %! [a, d, h] = importdata (fn, "", 0); |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
656 %! 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
|
657 %! assert (a.textdata, {"header1"; "header2"}); |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
658 %! assert (h, 0); |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
659 %! ## Import with 1 header lines |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
660 %! [a, d, h] = importdata (fn, "", 1); |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
661 %! 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
|
662 %! assert (a.textdata, {"header1"; "header2"}); |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
663 %! assert (h, 1); |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
664 %! ## Import with 3 header lines |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
665 %! [a, d, h] = importdata (fn, "", 3); |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
666 %! assert (a.data, [4.2]); |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
667 %! 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
|
668 %! assert (h, 3); |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
669 %! unlink (fn); |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
670 |
28896
90fea9cc9caa
test: Add expected error message <Invalid call> to BIST tests for nargin.
Rik <rik@octave.org>
parents:
28789
diff
changeset
|
671 ## Test input validation |
90fea9cc9caa
test: Add expected error message <Invalid call> to BIST tests for nargin.
Rik <rik@octave.org>
parents:
28789
diff
changeset
|
672 %!error <Invalid call> importdata () |
17358 | 673 %!error <FNAME must be a string> importdata (1) |
674 %!error <option -pastespecial not implemented> importdata ("-pastespecial") | |
675 %!error <DELIMITER must be a single character> importdata ("foo", 1) | |
676 %!error <DELIMITER must be a single character> importdata ("foo", "ab") | |
677 %!error <HEADER_ROWS must be an integer> importdata ("foo", " ", "1") | |
678 %!error <HEADER_ROWS must be an integer> importdata ("foo", " ", 1.5) | |
679 %!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
|
680 %!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
|
681 %! fn = tempname (); |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
682 %! fid = fopen (fn, "w"); |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
683 %! fputs (fid, "header1\nheader2\n3.1"); |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
684 %! fclose (fid); |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
685 %! a = importdata (fn, "", 1); |
8aef9f5755fe
importdata.m: Properly process HEADER_ROWS input (bug #58294).
Rik <rik@octave.org>
parents:
28277
diff
changeset
|
686 %! unlink (fn); |