楼主: songyaohuai
2392 1

[问答] 如何用matlab 生成矩阵 [推广有奖]

  • 1关注
  • 0粉丝

等待验证会员

高中生

67%

还不是VIP/贵宾

-

威望
0
论坛币
67 个
通用积分
0.6928
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
197 点
帖子
12
精华
0
在线时间
51 小时
注册时间
2015-6-18
最后登录
2020-5-16

楼主
songyaohuai 发表于 2017-3-10 21:00:04 |AI写论文
100论坛币
如图,第一列和第二列分别为具体的个体编号,第三列1表示两个个体有联系。想凭此生成个体-个体联系矩阵,两个个体有联系对应处填1,无联系对应处填0。求助如何解决(求matlab代码)

捕获.JPG (43.38 KB)

捕获.JPG

关键词:MATLAB matla atlab Mat Atl matlab 如何

沙发
necroen 发表于 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
已有 2 人评分论坛币 学术水平 热心指数 收起 理由
我的素质低 + 10 + 1 精彩帖子
admin_kefu + 20 + 2 热心帮助其他会员

总评分: 论坛币 + 30  学术水平 + 1  热心指数 + 2   查看全部评分

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-9 10:08