【发布时间】:2014-09-11 22:13:02
【问题描述】:
csvRead 的 Scilab 文档表明可以指定范围(从 row,col 到 row,col)和要忽略的标题行数。但是我似乎一次只能做一个。
这就是我正在做的事情(基于文档中的一个示例;使用 Scilab 5.5.0)。首先,创建一个 CSV 文件进行回读:
CSV = ["1,0,0,0,0";
"0,1,0,0,0";
"0,0,1,0,0";
"4,4,1,2,0";
"4,63,1,2,0";
"4,63,1,4,233";
"42,3,23,2,23";
];
filename = fullfile(TMPDIR , 'foo.csv');
mputl(CSV, filename);
现在从第 2 行第 1 列读回数据到第 5 行第 4 列:
csvRead(filename, [], [], "double", [], [], [2 1 5 4])
这给出了结果
ans =
0. 1. 0. 0.
0. 0. 1. 0.
4. 4. 1. 2.
4. 63. 1. 2.
现在假设我想跳过 CSV 文件中的第一行(其中可能包含一些不重要的标题信息)。我会写:
csvRead(filename, [], [], "double", [], [], [], 1)
结果是什么
ans =
0. 1. 0. 0. 0.
0. 0. 1. 0. 0.
4. 4. 1. 2. 0.
4. 63. 1. 2. 0.
4. 63. 1. 4. 233.
42. 3. 23. 2. 23.
到目前为止一切顺利。如果我想跳过第一行并且只存储矩阵的一部分,我想我可以写:
csvRead(filename, [], [], "double", [], [], [2 1 5 4], 1)
但这给出了与以前相同的答案,即仅删除了标题行并忽略了范围:
ans =
0. 1. 0. 0. 0.
0. 0. 1. 0. 0.
4. 4. 1. 2. 0.
4. 63. 1. 2. 0.
4. 63. 1. 4. 233.
42. 3. 23. 2. 23.
是否可以同时指定范围和标题?我只修补 Scilab,所以可能会遗漏一些明显的东西。
【问题讨论】:
标签: scilab