讓說我有2點矩陣A
(7x2)和B
(3×2)減去第二列
A = [1 5;2 6;3 7;4 8;5 9;6 10;7 11]
B = [2 4;4 7;5 3]
,我想結果是:
C = [2 2;4 1;5 6]
讓說我有2點矩陣A
(7x2)和B
(3×2)減去第二列
A = [1 5;2 6;3 7;4 8;5 9;6 10;7 11]
B = [2 4;4 7;5 3]
,我想結果是:
C = [2 2;4 1;5 6]
你想要intersect
這樣,即使A不必按順序或從1開始的所有數字,它也能工作。
A = [1 5;2 6;3 7;4 8;5 9;6 10;7 11]
B = [2 4;4 7;5 3]
[cc,ia,ib] = intersect(A(:,1),B(:,1))
C = [cc,A(ia,2)-B(ib,2)]
也假設'A(:,1)'不一定是行索引。我偏向'ismember',但'intersect'方便地給你'cc',所以在這裏很不錯。 – chappjc
感謝vish,這_intersect_適用於我的真實案例。 – user3006147
ismember
做這項工作太:
>> C = [B(:,1) A(ismember(A(:,1),B(:,1)),2) - B(:,2)]
C =
2 2
4 1
5 6
或者,如果不是全部的B(:,1)
是A
:
[m,locs] = ismember(B(:,1),A(:,1))
C = [A(locs,1) A(locs,2) - B(m,2)]
+1不假設「A」的第一列必然是示例中的形式(反正選擇的示例不正確)。 - 或者,是嗎? –
是否A'的'第一個山坳總是有形式1,2,3。 ..?你應該指定,或者選擇一個更好的例子 –