假设你有两个矩阵如下:
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
个值。
答案 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
中的所有元素替换为B
中A == 1
的所有元素。所有其他元素将保持不变。