使用另一个矩阵的值填充像素

时间:2013-03-23 18:10:42

标签: matlab matrix pixels

假设你有两个矩阵如下:

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,其中包含B的值A=1

我认为在matlab我们可以为此做到以下几点:

C = B(A==1);

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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

无论如何必须初始化

C,所以让我们将其初始化为A,如同C = A;一样。然后,MATLAB允许您在C(A==1) = B(A==1);中为左侧编制索引,以将C中的所有元素替换为BA == 1的所有元素。所有其他元素将保持不变。