fid = fopen('node_coordinates.txt'); C = textscan(fid, 'Node %d: (%f,%f,%f)'); fclose(fid); nodes = [C{2}, C{3}, C{4}]; node_ids = C{1}; node_pos = nodes(:,1:2); [BC1_sorted, BC1_idx] = sort(BC1, 'descend'); % 将介数中心性从高到低排序并记录排序后的索引 top10_idx = BC1_idx(1:10); % 取前5个节点的索引 fid = fopen('resultjieshu1.txt', 'w'); % 打开文件 for i = 1:10 node_id = idx(top10_idx(i)); % 使用排序后的索引来获取节点编号 node_bc = BC1(node_id); node_x = node_pos(top10_idx(i), 1); % 使用未排序的索引来获取节点坐标 node_y = node_pos(top10_idx(i), 2); fprintf('节点 %d,介数中心性为 %f,坐标为 (%f,%f)\n', node_id, node_bc, node_x, node_y); end 改成输出xyz轴坐标
时间: 2024-02-12 12:04:09 浏览: 74
txt_read.zip_fscanf_matlab fprintf_matlab txt_read txt_textscan
5星 · 资源好评率100%
要将节点的xyz轴坐标输出,只需要将node_pos变量改为nodes变量即可。修改后的代码如下:
```
fid = fopen('node_coordinates.txt');
C = textscan(fid, 'Node %d: (%f,%f,%f)');
fclose(fid);
nodes = [C{2}, C{3}, C{4}];
node_ids = C{1};
node_pos = nodes(:,1:3);
[BC1_sorted, BC1_idx] = sort(BC1, 'descend'); % 将介数中心性从高到低排序并记录排序后的索引
top10_idx = BC1_idx(1:10); % 取前5个节点的索引
fid = fopen('resultjieshu1.txt', 'w'); % 打开文件
for i = 1:10
node_id = idx(top10_idx(i)); % 使用排序后的索引来获取节点编号
node_bc = BC1(node_id);
node_x = node_pos(top10_idx(i), 1); % 使用未排序的索引来获取节点x坐标
node_y = node_pos(top10_idx(i), 2); % 使用未排序的索引来获取节点y坐标
node_z = node_pos(top10_idx(i), 3); % 使用未排序的索引来获取节点z坐标
fprintf('节点 %d,介数中心性为 %f,坐标为 (%f,%f,%f)\n', node_id, node_bc, node_x, node_y, node_z);
end
```
这样修改后,程序会输出每个节点的编号、介数中心性和xyz轴坐标信息。
阅读全文