以八度为单位导入ip地址

时间:2014-07-07 05:49:38

标签: import ip-address octave type-conversion

我有一个数据集,包含传输的IP地址包等.Octave将IP地址转换为浮点值。如何导入IP地址,使用什么数据类型(String?)?

1 个答案:

答案 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
}

- 安迪