怎么用matlab程序表示下面的问题

学习 时间:2026-03-30 15:49:55 阅读:5785
怎么用matlab程序表示下面的问题要用matlab表示几个设备的连接关系,设备名分别用3,9,5,6表示,连接图如下最左图现有excel文件格式如下中图显示excel文件导入matlab后,请问怎样生成最右边的矩阵形式?矩阵是4*4维,其中4是设备数,矩阵的行代表起始设备,矩阵列代表终止设备.比如第一行第二列的1表示从设备3到9有连接关系.若设备名是字符串不是数字,比如a-1,b-2,c-3,d-4 代替 图中的 3,9,5,6,该怎么实现呢

最佳回答

繁荣的大山

大意的耳机

2026-03-30 15:49:55

N=[3 9 5 6]; % 设备编号V=[3 9; 9 5; 9 6]; % Excel的连接关系 % 连接矩阵,初始化为0,然后根据连接关系对有连接的元素赋值M=zeros(length(N));for i=1:size(V,1) r=find(V(i,1)==N); c=find(V(i,2)==N); M(r,c)=1;enddisp(M) 再问: 谢谢你。请问下如果矩阵N和V换成字符串形式,(比如N=[a-1 b-2 c-3 d-4], V也改成相应的形式)那怎么使用find命令呢, V(i,1)==N只能用在数字比较吧?(如果find命令不行,其他实现方式也行,谢谢了) 再答: 1、如果是字符串,N和V应该使用元胞数组(cell,用花括号); 2、find不能用于字符串比较,应该用strmatch。 修改后的代码见下,需要注意,字母的大小写是有区别的。 N = {'a-1' 'b-2' 'c-3' 'd-4'}; % 设备编号 V = {'a-1' 'b-2'; 'b-2' 'c-3'; 'b-2' 'd-4'}; % 连接关系 % 连接矩阵,初始化为0,然后根据连接关系对有连接的元素赋值 M=zeros(length(N)); for i=1:size(V,1) r=strmatch(V{i,1},N,'exact'); c=strmatch(V{i,2},N,'exact'); M(r,c)=1; end disp(M)

最新回答共有2条回答

  • 结实的大山
    回复
    2026-03-30 15:49:55

    N=[3 9 5 6]; % 设备编号V=[3 9; 9 5; 9 6]; % Excel的连接关系 % 连接矩阵,初始化为0,然后根据连接关系对有连接的元素赋值M=zeros(length(N));for i=1:size(V,1) r=find(V(i,1)==N); c=find(V(i,2)==N); M(r,c)=1;enddisp(M) 再问: 谢谢你。请问下如果矩阵N和V换成字符串形式,(比如N=[a-1 b-2 c-3 d-4], V也改成相应的形式)那怎么使用find命令呢, V(i,1)==N只能用在数字比较吧?(如果find命令不行,其他实现方式也行,谢谢了) 再答: 1、如果是字符串,N和V应该使用元胞数组(cell,用花括号); 2、find不能用于字符串比较,应该用strmatch。 修改后的代码见下,需要注意,字母的大小写是有区别的。 N = {'a-1' 'b-2' 'c-3' 'd-4'}; % 设备编号 V = {'a-1' 'b-2'; 'b-2' 'c-3'; 'b-2' 'd-4'}; % 连接关系 % 连接矩阵,初始化为0,然后根据连接关系对有连接的元素赋值 M=zeros(length(N)); for i=1:size(V,1) r=strmatch(V{i,1},N,'exact'); c=strmatch(V{i,2},N,'exact'); M(r,c)=1; end disp(M)

上一篇 人教版小学六年级下册音乐有哪些

下一篇 郭守敬的主要贡献有哪些?