首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >一定条件下的约简矩阵

一定条件下的约简矩阵
EN

Stack Overflow用户
提问于 2015-04-06 14:51:04
回答 1查看 55关注 0票数 0

M是由几个子矩阵Ai组成的矩阵4x2000000,使得Ai(1:3,j)j = 1,...,size(Ai,2)的同一个向量。Ai(4,j)1100之间的值。

代码语言:javascript
运行
复制
V = [2 15 21 43]

我的目标是消除所有子矩阵Ai of M,如果Ai(4,:)不包含V的所有值。

这个问题的唯一初始数据MV

示例:

代码语言:javascript
运行
复制
M = [1022  3001  4451 1022 1022  3001 1022 3001 3001 1022;
      112    45    10  112  112    45   11   45   99  112;
      500    11    55  500  500    11   88   11    1  500;
        2     6     3    5   71     2    2   71    5   88]  

A1 = [1022 1022 1022 1022;
       112  112  112  112;
       500  500  500  500;
         2    5   71   88]

A2 = [3001 3001 3001;
        45   45   45;
        11   11   11;
         6    2   71]

A3 = [4451;
        10;
        55;
         3]

A4 = [1022;
        11;
        88;
         2]

A5 =[3001;
       99;
        1;
        5]

如果是V = [2 71]

预期输出(列的顺序不重要):

代码语言:javascript
运行
复制
[1022 1022 1022 1022 3001 3001 3001;
  112  112  112  112   45   45   45;
  500  500  500  500   11   11   11;
    2    5   71   88    6    2   71]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-06 15:38:20

一种方法-

代码语言:javascript
运行
复制
[~,~,idx] = unique(M(1:3,:)','rows')  %//'
valid = ismember(M(4,:),V)
valid_idx = accumarray(idx(valid),M(4,valid).',[],@(x) ...
                                 numel(unique(x)))>=numel(V) %//'
out = M(:,ismember(idx,find(valid_idx)))
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29473620

复制
相关文章

相似问题

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