0

假设您有两个矩阵,如下所示:

A = [1 0.2 1; 0.4 0.4 1; 1 0.6 1; 0.9 0.7 1];

B = [33 75 250; 6 34 98; 55 3 4; 153 66 30];

假设我们要创建一个C包含Bwhere值的新矩阵A=1

我认为matlab我们可以为此做以下事情:

C = B(A==1);

但是,我怎样才能用 的原始值填充其他单元格A,我认为在我们的例子中,我们只会得到一个向量,B其中包含对应值的元素A=1?而且,我希望C具有相同的尺寸,B但其原始值A不等于而不是1具有0值。

4

2 回答 2

1

是的,你可以这样做:

C= A.*(A~=1)+B.*(A==1)

这使:

C =

33.0000    0.2000  250.0000
0.4000    0.4000   98.0000
55.0000    0.6000    4.0000
0.9000    0.7000   30.0000
于 2013-03-23T18:23:57.293 回答
0

C无论如何都必须初始化,所以让我们将其初始化AC = A;. 然后,MATLAB 允许您像 in 一样对左侧进行索引,以将 in 中的C(A==1) = B(A==1);所有元素替换为 in 中的元素。所有其他元素将保持不变。CBA == 1

于 2013-03-23T18:28:49.497 回答