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:你乘了两次!再试一次,应该是正确的。=)