在 Octave 中读取多格式数据
Read multi format data in Octave
我刚开始学习 Octave,正在尝试读取一个 csv
文件,其中包含字符串、整数和浮点数形式的数据。例子如下
a,b,c,d
1,c,10,1234.2
e,2,4,5
我最初使用 csvread
尝试了很多。我的一些例子如下:
[val1, val2, val3, val4] = csvread('input.csv', '%s %s %s %s');
但我收到类似 error: dlmread: error parsing RANGE
的错误
然后使用这个 question,我使用了 textread
函数,如下所示:
[val1, val2, val3, val4] = textread('input.csv', '%s %s %s %s', 'delimiter', ',');
我现在可以读取数据了,但是当我打印这些值时,我什至得到了值的地址,如下所示。
val1 =
{
[1,1] = a
[2,1] = 1
[3,1] = e
}
有人可以帮我吗
1) 找出 csvread
.
中的错误
2) 为什么 textread
函数返回地址。如何避免它们?
在此先感谢您的帮助。
dlmread的使用,是你错误的原因,可以在这个answer中找到。注意
x = csvread (filename, dlm_opts)
等同于
x = dlmread (filename, "," , …)
textread返回的项目
val1 =
{
[1,1] = a
[2,1] = 1
[3,1] = e
}
是一个cell array of strings。使用元胞数组,因为矩阵必须由长度相等的向量组成,而当操作一个可变大小的单词时,情况并非如此。如果将单词存储在矩阵中,则所有 rows/columns 都必须是 "padded",与存储的最长单词一样长。
将元胞数组 (val1) 特定索引处的元素转换为您使用的向量 cell2mat
vec=cell2mat(val1(index));
我刚开始学习 Octave,正在尝试读取一个 csv
文件,其中包含字符串、整数和浮点数形式的数据。例子如下
a,b,c,d
1,c,10,1234.2
e,2,4,5
我最初使用 csvread
尝试了很多。我的一些例子如下:
[val1, val2, val3, val4] = csvread('input.csv', '%s %s %s %s');
但我收到类似 error: dlmread: error parsing RANGE
然后使用这个 question,我使用了 textread
函数,如下所示:
[val1, val2, val3, val4] = textread('input.csv', '%s %s %s %s', 'delimiter', ',');
我现在可以读取数据了,但是当我打印这些值时,我什至得到了值的地址,如下所示。
val1 =
{
[1,1] = a
[2,1] = 1
[3,1] = e
}
有人可以帮我吗
1) 找出 csvread
.
2) 为什么 textread
函数返回地址。如何避免它们?
在此先感谢您的帮助。
dlmread的使用,是你错误的原因,可以在这个answer中找到。注意
x = csvread (filename, dlm_opts)
等同于
x = dlmread (filename, "," , …)
textread返回的项目
val1 =
{
[1,1] = a
[2,1] = 1
[3,1] = e
}
是一个cell array of strings。使用元胞数组,因为矩阵必须由长度相等的向量组成,而当操作一个可变大小的单词时,情况并非如此。如果将单词存储在矩阵中,则所有 rows/columns 都必须是 "padded",与存储的最长单词一样长。
将元胞数组 (val1) 特定索引处的元素转换为您使用的向量 cell2mat
vec=cell2mat(val1(index));