%第二层连通介数中心性 fid = fopen('node_coordinates2.txt'); C = textscan(fid, 'Node %d: (%f,%f,%f)'); fclose(fid); coordinates = [C{2}, C{3}, C{4}]; nodeID = C{1}; % 将节点坐标转换为3列矩阵 coordinates = reshape(coordinates, [3, length(nodeID)]); coordinates = coordinates'; % 计算连通中心性 n = length(nodeID); C = zeros(n,1); for i = 1:n for j = 1:n if a2(i,j) == 1 C(i) = C(i) + 1/(n-1); end end end % 找出前10个重要节点 [~, idx] = sort(C, 'descend'); if length(idx) >= 10 top10 = idx(1:10); else top10 = idx; end % 输出前10个重要节点的坐标 for i = 1:length(top10) fprintf('Node %d: (%f, %f, %f)\n', nodeID(top10(i)), coordinates(top10(i),1), coordinates(top10(i),2), coordinates(top10(i),3)); end换一种数据读取方式
时间: 2023-08-22 17:07:46 浏览: 66
这里可以使用函数`importdata`来读取数据文件,它可以自动根据数据格式读取数据。
首先读取节点坐标数据:
```
data = importdata('node_coordinates2.txt');
coordinates = data.data(:,2:4);
nodeID = data.data(:,1);
```
然后计算连通中心性:
```
n = length(nodeID);
C = zeros(n,1);
for i = 1:n
for j = 1:n
if a2(i,j) == 1
C(i) = C(i) + 1/(n-1);
end
end
end
```
接着找出前10个重要节点:
```
[~, idx] = sort(C, 'descend');
if length(idx) >= 10
top10 = idx(1:10);
else
top10 = idx;
end
```
最后输出前10个重要节点的坐标:
```
for i = 1:length(top10)
fprintf('Node %d: (%f, %f, %f)\n', nodeID(top10(i)), coordinates(top10(i),1), coordinates(top10(i),2), coordinates(top10(i),3));
end
```
阅读全文