Matlab 在邻接矩阵中,我想用另一个矩阵给出的值替换它
我的问题是,我有一个邻接矩阵 输入:Matlab 在邻接矩阵中,我想用另一个矩阵给出的值替换它,matlab,matrix,Matlab,Matrix,我的问题是,我有一个邻接矩阵 输入: 1 2 3 4 5 A = 1 [0 1 1 0 1] 2 [1 0 1 0 1] 3 [0 1 0 1 0] 4 [1 0 1 0 1] 5 [0 0 1 0 0] B = [0 22 33 0 44] [55 0 66 0 77] [0 11 0 22 0] [11 0 88 0 55] [0 0 55 0 0] 上面的矩阵是创建一个图或生成一个
1 2 3 4 5
A = 1 [0 1 1 0 1]
2 [1 0 1 0 1]
3 [0 1 0 1 0]
4 [1 0 1 0 1]
5 [0 0 1 0 0]
B = [0 22 33 0 44]
[55 0 66 0 77]
[0 11 0 22 0]
[11 0 88 0 55]
[0 0 55 0 0]
上面的矩阵是创建一个图或生成一个生成树,另一个矩阵是(表示图中边的值)
输入:
1 2 3 4 5
A = 1 [0 1 1 0 1]
2 [1 0 1 0 1]
3 [0 1 0 1 0]
4 [1 0 1 0 1]
5 [0 0 1 0 0]
B = [0 22 33 0 44]
[55 0 66 0 77]
[0 11 0 22 0]
[11 0 88 0 55]
[0 0 55 0 0]
我想在B
矩阵的帮助下替换A
的所有元素,其中矩阵A
中有1个元素,这意味着输出应为
A = [0 22 33 0 44]
[55 0 66 0 77]
[0 11 0 22 0]
[11 0 88 0 55]
[0 0 55 0 0]
我想这就是你想要的:
% first make A into logical matrix, and the select from B values where A == 1;
A = B(logical(A));
假设
A
只包含0和1,我建议:
A = B.*A;
但是,对于您上面提供的示例,
A=B
应该可以很好地工作(但我想这些示例并不具有代表性。>A=[011;1011;0110]A=01101010>>B=[01122;33044;0550];>A=B(逻辑(A));>A=B(逻辑(A))A=0 33 0 110@user3226283那么它是好是坏?还不清楚你真正想要实现什么。也许可以用新的例子编辑这个问题。>>A=[011;1011;01010]A=01101010>>B=[01122;33044;0550];>>A=B.*A;>>A=B.*A=0 121 484 1089 0 1936 0 3025这是我得到的,先生,我想用B的值替换元素谢谢你的帮助…@user3226283:你乘了两次!再试一次,应该是正确的。=)