当前位置: 首页 > 面试题库 >

MATLAB:SQL风格的联接操作

司凡
2023-03-14
问题内容

我想用Matlab做一个SQL风格的联接。我可以通过创建数据集(统计工具箱),进行联接,转换回并再次删除数据集来做到这一点:

A1 = [10 10 20 20 30 30 50 50]';
B1 = (10:10:70)';
B2 = (1:7)';

dsA = dataset({A1, 'Key'});
dsB = dataset({B1, 'Key'}, {B2, 'Idx'});
dsA = join(dsA, dsB, 'key', 'Key');

结果:

Key    Idx
10     1  
10     1  
20     2  
20     2  
30     3  
30     3  
50     5  
50     5

我的问题:是否有另一种方法, 而不使用数据集,也没有for循环

非常感谢您的帮助!


问题答案:

对于您的示例,您可以简单地使用ISMEMBER:

[~,loc] = ismember(A1,B1);
dsA = [B1(loc) B2(loc)]

结果:

dsA =
    10     1
    10     1
    20     2
    20     2
    30     3
    30     3
    50     5
    50     5

注意:假设中的所有元素都在A1中找到B1。如果不是总是这样,则可以使用ISMEMBER的第一个输出来过滤…中的零值loc



 类似资料:
  • 就像已经讨论的那样,自动和透明的对象/关系映射(object/relational mapping)关注于管理对象的状态。这就意味着对象的状态存在于内存,因此直接操作(使用 SQL Data Manipulation Language(DML,数据操作语言)语句 :INSERT ,UPDATE 和 DELETE) 数据库中的数据将不会影响内存中的对象状态和对象数据。不过,Hibernate 提供通

  • camelCase 很糟 你曾维护过别人的代码吗?你维护过像这样的代码吗? my $variableThatContainsData = someSubroutineThatMucksWithData( $someAwfulVariable ); 混合大小写单词在 Perl 世界被称为 camelCase,通常它的令人不悦之处是使 阅读代码更难。 甚至具有糟糕名称的代码使用下划线也能变得

  • 问题内容: 标题几乎总结了一下。 外部样式表具有以下代码: 我尝试使用: 和 但都行不通。是否有可能使用javascript覆盖!important样式。 如果有区别的话,这是给 greasemonkey扩展的。 问题答案: 我相信这样做的唯一方法是将样式添加为带有’!important’后缀的新CSS声明。最简单的方法是将新的元素附加到文档的开头: 使用上述方法添加的规则(如果使用!import

  • Style Java 传统的代码风格是被用来编写非常复杂的企业级 JavaBean。新的代码风格看起来会更加整洁,更加正确,并且更加简单。 Structs 对我们程序员来说,包装数据是最简单的事情之一。下面是传统的通过定义一个 JavaBean 的实现方式: public class DataHolder { private String data; public DataHold

  • 如果一定要把一般的API 服务转换成restful风格,可以自定义控制器。例如上一节的服务例子: 方法 restful url 功能 原 url 原方法 GET /website 查询记录列表 /website/list.java GET POST /website 创建一条记录 /website/insert.java POST GET /website/id 根据id查询记录 /website

  • 我知道可以在React类中指定样式,如下所示: 我的目标应该是以这种方式进行所有样式设置,并且在CSS文件中完全没有指定样式吗? 或者我应该完全避免内联样式吗? 两种方法都做一点似乎有些奇怪和混乱——在调整样式时,需要检查两个地方。