我有一个名为universe的矩阵,有n行和2列。这个矩阵是书籍的世界。然后我有另一个矩阵,m行(m小于或等于n)和2列。这个矩阵可以被认为是书店。
两个矩阵都包含一个列Book ISIN,所有条目都是唯一的。
修改
请注意,本书ISIN包含字母和数字。
编辑结束
我想要做的是调整我的书店矩阵,以便Book ISIN与我的Universe Matrix中的Book ISIN列完全相同。
最后,我想要书店里的任何书籍ISIN在“已售出总数”列中的值为零。下面右边的最后一个矩阵是我正在寻找的结果。
n >= m
Matrix Universe (n x 2) Book Store (m x 2) Result I would like
Book ISIN Book Name Book ISIN Total Sold Book ISIN Total Sold
12DE3 ABC 45ES6 3 12DE3 0
45ES6 DEF 10SX1 9 45ES6 3
78AQ9 FGH 78AQ9 0
10SX1 LMN 10SX1 9
答案 0 :(得分:1)
<强>代码强>
%%// Given data
universe = {
'12DE3' 'ABC';
'45ES6' 'DEF';
'78AQ9' 'FGH';
'10SX1' 'LMN'}
store = {
'10SX1' '9';
'45ES6' '3'}
%%// Detect the row numbers of `universe` where data from first column
%%// of `store` is present in first column of `universe`
[true_pos,pos1] = ismember(universe(:,1),store(:,1));
%%// Final output which is same as universe array
%%// but second is modified based on store
store_mod = universe;
store_mod(:,2)={'0'};
store_mod(true_pos,2) = store(pos1(pos1~=0),2)
<强>输出强>
store_mod =
'12DE3' '0'
'45ES6' '3'
'78AQ9' '0'
'10SX1' '9'