全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 MATLAB等数学软件专版
2324 1
2017-03-10
悬赏 100 个论坛币 未解决
如图,第一列和第二列分别为具体的个体编号,第三列1表示两个个体有联系。想凭此生成个体-个体联系矩阵,两个个体有联系对应处填1,无联系对应处填0。求助如何解决(求matlab代码)
捕获.JPG

原图尺寸 43.38 KB

捕获.JPG

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2017-3-13 21:14:18
随便敲了些和lz类似的关系数字,把你的数字放到这个txt文件里就可以了。

比如你有一个txt文件叫numbers.txt,里头的数字如下
2 3 1
3 4 1
3 9 1
10 9 1
4 6 1
9 6 1
8 10 1

程序如下
clear all;clc;close all;

numbers = importdata('numbers.txt');% 从txt文件中导入数据
firstCol = numbers(:,1); % 截取第一列数据放在这个变量中
secondCol = numbers(:,2); % 截取第二列数据放在这个变量中

% 联系矩阵的大小应该由第一列和第二列中最大的数字决定
m = max(numbers(:,1));
n = max(numbers(:,2));
linkTable = zeros(m,n); % 将联系矩阵初始化为0

N = size(numbers,1); % txt中数据的行数
for i = 1:N
    linkTable(firstCol(i),secondCol(i)) = 1; % 两个个体有联系对应处填1
end

linkTable % 显示这个联系矩阵

结果如下:
linkTable =

     0     0     0     0     0     0     0     0     0     0
     0     0     1     0     0     0     0     0     0     0
     0     0     0     1     0     0     0     0     1     0
     0     0     0     0     0     1     0     0     0     0
     0     0     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0     0     1
     0     0     0     0     0     1     0     0     0     0
     0     0     0     0     0     0     0     0     1     0
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群