我有一个由IP地址数据包传输等组成的数据集。Octave正在将IP地址转换为浮点值。我如何导入IP地址,因为它是什么数据类型是要使用(字符串?)?
如何在八度音阶中导入它们?GNU Octave有很多加载/保存数据的函数。这取决于你的IP地址(IPv4还是IPv6?)如何存储在你的文件中,哪个功能对你来说是最简单/最好的。
例如,如果你有一个名为"ips.txt"的文件,
192.168.10.4
8.8.8.8
14.32.244.8
你可以用这个来获取一个单元格:
octave:1> f = fopen("ips.txt", "r");
octave:2> l = textscan(f, "%s");
octave:3> fclose(f);
octave:4>
octave:4> l{1}
ans =
{
[1,1] = 192.168.10.4
[2,1] = 8.8.8.8
[3,1] = 14.32.244.8
}
octave:5>
但是也许char(fread(..))或fgetl可能更适合你,这取决于你以后想要对导入的ip做什么…
添加:因为您评论说您的IP地址在浮点数列表中,而不是固定方案(固定方案将是例如:"想要的IP位于行开头,即4。列或类似的东西可以用awk处理)我还添加了一个可能性与regexp:
我创建了这个文件ips.txt:
192.168.10.4 some text 3.14 8.8.8.8
other 123.44 14.32.244.8
4.667.2 12.943 127.0.0.1 hello world
用regexp
加载它f = fopen("ips.txt", "r");
x = char(fread(f));
fclose(f);
[S, E, TE, M, T, NM, SP] = regexp (x', '[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}');
等于M:
M =
{
[1,1] = 192.168.10.4
[1,2] = 8.8.8.8
[1,3] = 14.32.244.8
[1,4] = 127.0.0.1
}
——安迪。