首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调整矩阵和匹配数据

调整矩阵和匹配数据
EN

Stack Overflow用户
提问于 2014-04-16 09:51:16
回答 1查看 74关注 0票数 1

我有一个叫做宇宙的矩阵,它有n行2列。这个矩阵是书的宇宙。然后,我有另一个矩阵,这一次有m行(其中m小于或等于n)和2列。这个矩阵可以看作是一家书店。

两个矩阵都包含一个列图书ISIN --所有的条目都是唯一的。

编辑

请注意,这本书包含字母和数字。

编辑的

我想做的是调整我的图书存储矩阵的大小,使图书ISIN与我的宇宙矩阵中的Book列完全相同。

最后,我希望书店中没有的任何图书ISIN在Total列中的值为零。下面右边的最后一个矩阵是我正在寻找的结果。

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-16 10:11:10

代码语言:javascript
复制
%%// 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)

输出

代码语言:javascript
复制
store_mod = 

    '12DE3'    '0'
    '45ES6'    '3'
    '78AQ9'    '0'
    '10SX1'    '9'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23105869

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档