求一同帮改程序 判别资料依对角化矩阵排列
本帖最后由 真龍虎王 于 2010-5-25 09:00 编辑求各位高手一同解决问题谢谢
原题目:看楼下(2#)
程序:
clear all
clc
Info = [
1 0 1 1
2 1 2 1
3 2 3 2
4 2 4 3];
Cmd = [
1001
1002
1003
2001
2003
3001
3003
4001
];
c1 = floor(Cmd/1000); % 千位数
c2 = mod(Cmd,10); % 个位数
ABC = ; % ABC的代码值
for k = 1: size(Info,1)
lacks = setdiff(,c2(c1 == k)); % 缺少的数字
X = ABC(Info(k,4))*ones(3,3);
if ~isempty(lacks)
for n = 1:length(lacks)
X(lacks(n),:) = 0;
X(:,lacks(n)) = 0;
end
end
Yk{k} = X
end
for k = 1: size(Info,1)
for kk = 1:size(Info,1)
if k ~= kk && Info(kk,2) == Info(k,3)% 起点 = 终点
Yk{k} = Yk{k} + Yk{kk};
end
end
end
Y = blkdiag(Yk{:})
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
新题目
(1)A变0
所以程序
ABC = ; 变ABC = ; 即可
最后
Y=[000000000000
0 00000000000
000000000000
0003 02000000
000000000000
0002 02000000
000000202000
000000000000
000000202000
000000000100
000000000000
000000000000
(2) 原本缺的项要再删掉
Y=[ 000000000000
000000000000
000000000000
0003 0 2000000
000000000000
0002 0 2000000
000000202000
000000000000
000000202000
000000000100
000000000000
000000000000
最后
Y=[ 00000000
00000000
00000000
00032000
00022000
00000220
00000220
00000001
原本想改
X(lacks(n),:) = 0;
X(:,lacks(n)) = 0;
变
X(lacks(n),:) = [];
X(:,lacks(n)) = [];
却失败
在此求帮改出Y 本帖最后由 真龍虎王 于 2010-5-25 08:53 编辑
原题目:
表1:
Info = [
支路号 起始点 终止点支路类型编号
1 0 1 1
2 1 2 1
3 2 3 2
4 2 4 3];
表2:
Cmd = [
1001
1002
1003
2001
2003
3001
3003
4001
];
A=3
B=2
C=1
(1)看表1支路号 = 1 支路类型编号 = 1找到 终止点 = 1 起始点 = 0
看表2内容与相终止同千位数为1的有1001,1002,1003共3个
因为支路类型编号 =1
支路类型编号相对应的(类型1-A,类型2-B,类型3-C)
故X=[A A A=[3 3 3 3*3大小的矩阵且 终止点 = 1 起始点 = 0 故只要X放入Y
A A A 3 3 3
A A A 3 3 3]
Y=[3 3 3
3 3 3
3 3 3]
(2)看表1支路号 = 2 支路类型编号 = 1找到 终止点 = 2 起始点 = 0
看表2内容与相终止同千位数为2的有2001,2003共2个
因为支路类型编号 =1
支路类型编号相对应的(类型1-A,类型2-B,类型3-C)
故X=[A 0A =[3 0 3 因為表2个位数沒有2所以补0
000 0 0 0
A 0A 3 0 3
终止点 = 2 起始点 = 1
Y=[333000 又因起始点 = 1 Y=[636000
333000所以刚终止点 = 1 3 33 00 0
333000也要+X 6 36 00 0
000303 0 00 30 3
000000 0 00 00 0
000303 0 00 30 3
(3)看表1支路号 = 3 支路类型编号 = 2找到 终止点 = 3 起始点 = 2
看表2内容与相终止同千位数为3的有3001,3003共2个
因为支路类型编号 =2
支路类型编号相对应的(类型1-A,类型2-B,类型3-C)
故X=[B 0B =[2 0 2 因為表2个位数沒有2所以补0
000 0 0 0
B 0B 2 0 2
终止点 = 3 起始点 = 2
Y=[636000000 又因起始点 = 2 Y=[6 3 6 0 0 0 0 0 0
333000000所以刚终止点 = 2 3 3 30 0 0 0 0 0
636000000也要+X 6 3 6 0 0 0 0 0 0
000303000 0 0 0 5 0 5 0 0 0
000000000 0 0 0 0 0 0 0 0 0
000303000 0 0 0 5 0 5 0 0 0
000000202 0 0 0 0 0 0 2 0 2
000000000 0 0 0 0 0 0 0 0 0
000000202 0 0 0 0 0 0 2 0 2
(4)看表1支路号 = 4 支路类型编号 = 3找到 终止点 = 4 起始点 = 2
看表2内容与相终止同千位数为4的有4001共1个
因为支路类型编号 =3
支路类型编号相对应的(类型1-A,类型2-B,类型3-C)
故X=[C 00 =[1 0 0 因為表2个位数沒有2,3所以补0
000 0 0 0
0 00 0 0 0
终止点 = 3 起始点 = 2
Y=[636000000000 又因起始点 = 2
333000000000所以刚终止点 = 2
636000000000 也要+X
000505000000
000000000000
000505000000
000000202000
000000000000
0000002020 00
0000000001 0 0
0000000000 0 0
0000000000 0 0
最后
Y=[636000000000
333000000000
636000000000
000605000000
000000000000
000505000000
000000202000
000000000000
000000202000
000000000100
000000000000
000000000000 请问有人可以最后完成是
Y=[ 00000000
00000000
000 00000
00032000
00022 000
00000220
00000220
0000000 1
页:
[1]