我有一个数据集,包含传输的IP地址包等.Octave将IP地址转换为浮点值。如何导入IP地址,使用什么数据类型(String?)?
答案 0 :(得分:0)
如何以八度音阶导入它们? 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可能会更好,因为你依赖导入的ips后想做什么......
此外: 因为您评论说您的IP地址位于浮点列表中而不是固定方案(例如,固定方案是:“想要的ips位于行的开头,第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
}
- 安迪