作业帮 > 综合 > 作业

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

来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/07/09 19:06:47
怎么用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,该怎么实现呢
怎么用matlab程序表示下面的问题
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;
end
disp(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)