【发布时间】:2014-11-19 18:14:11
【问题描述】:
我使用neworkx 在50 个节点上生成了一个随机几何图形,并创建了一个包含该网络某些属性的.dat 文件。
我需要将这些作为 MATLAB 变量进行访问。我使用以下命令将文件作为数据字符串读取:
fid = fopen('mydata.dat','r')
data = textscan(fid, '%s')
fclose(fid)
数据文件结构如下
conn = val
Adj = val ..... val
.............
val ......val
pos =
[0.7910629988376467, 0.5523474928588686]
...
[0.6799716933198028, 0.6981655240935597]
即conn 是一个数字,Adj 是(假设是)一个 50 x 50 的矩阵,pos 是一个 50 x 2 的矩阵。
我可以将 conn 和 Adj 读取为 MATLAB 变量,但我无法读取 pos.第一个实例从 data{1}{2508} 开始,是
data{1}{2508}
>>> [0.7832623541518583,
我如何将它塞入一个 50 x 2(或 2 x 50)矩阵?
阅读我使用的 Adj
P = 50 %number of nodes
index = 5
for i=1:P
for j = 1:P
Adj(i,j) = str2double(data{1}(index + P*(i-1) +j))
end
end
我认为类似的东西适用于 pos,但使用 j = 1:2 和 index = 2508 但我得到的是 NaN,因为我的 .dat 文件的行(字段?)不仅仅是值,它们是形成[val, 或,val]
【问题讨论】: