怎么用matlab程序表示下面的问题
来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/07/09 19:06:47
怎么用matlab程序表示下面的问题
要用matlab表示几个设备的连接关系,设备名分别用3,9, 5, 6表示,连接图如下最左图
现有excel文件格式如下中图显示
excel文件导入matlab后,请问怎样生成最右边的矩阵形式?
矩阵是4*4维,其中4是设备数,矩阵的行代表起始设备,矩阵列代表终止设备.比如第一行第二列的1表示从设备3到9有连接关系.
![](http://img.wesiedu.com/upload/9/77/977a948bc4d22970bd5a86b6887a561d.jpg)
若设备名是字符串不是数字,比如a-1,b-2,c-3,d-4 代替 图中的 3,9,5,6,该怎么实现呢
要用matlab表示几个设备的连接关系,设备名分别用3,9, 5, 6表示,连接图如下最左图
现有excel文件格式如下中图显示
excel文件导入matlab后,请问怎样生成最右边的矩阵形式?
矩阵是4*4维,其中4是设备数,矩阵的行代表起始设备,矩阵列代表终止设备.比如第一行第二列的1表示从设备3到9有连接关系.
![](http://img.wesiedu.com/upload/9/77/977a948bc4d22970bd5a86b6887a561d.jpg)
若设备名是字符串不是数字,比如a-1,b-2,c-3,d-4 代替 图中的 3,9,5,6,该怎么实现呢
![怎么用matlab程序表示下面的问题](/uploads/image/z/2004297-33-7.jpg?t=%E6%80%8E%E4%B9%88%E7%94%A8matlab%E7%A8%8B%E5%BA%8F%E8%A1%A8%E7%A4%BA%E4%B8%8B%E9%9D%A2%E7%9A%84%E9%97%AE%E9%A2%98)
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)
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)