【问题标题】:Simple: How can I concatenate more elements of struct arrays in Matlab?简单:如何在 Matlab 中连接结构数组的更多元素?
【发布时间】:2016-01-10 13:25:43
【问题描述】:

我将以下数组 k 定义为坐标结构数组,即 k={{x1,y1},{x2,y2}}。 如果我想在这个结构数组中再添加一个坐标,我会使用什么表示法?伪代码为 k=k+{x3,y3},结果为 {{x1,y1},{x2,y2},{x3,y3}}。作为一名 Python 编码员,我对 Matlab 的语法有疑问。

谢谢

【问题讨论】:

    标签: arrays matlab struct concatenation elements


    【解决方案1】:

    假设您的结构已经包含xy 坐标,并且您有一个包含其他坐标的主结构,在您的情况下为k。这是一个包含两个点的示例结构,其中每个结构都有两个字段:xy

    k(1).x = 10;
    k(1).y = 20;
    k(2).x = 20;
    k(2).y = 30;
    

    如果你有其他观点:

    pt.x = 40;
    pt.y = 50;
    

    ...要将这一点连接到您的结构k,很简单:

    k = [k pt];
    

    这是将结构连接到更大的结构列表的最常用方法。


    作为证据,让我们看看串联前后的xy坐标:

    >> xvals = [k.x]
    
    xvals =
    
        10    20
    
    >> yvals = [k.y]
    
    yvals =
    
        20    30
    
    >> pt.x = 40;
    >> pt.y = 50;
    >> k = [k pt];
    >> xvals = [k.x]
    
    xvals =
    
        10    20    40
    
    >> yvals = [k.y]
    
    yvals =
    
        20    30    50
    

    【讨论】:

      【解决方案2】:

      使用您的符号,您创建了一个包含单元格的单元格数组。这与 matlab 中的结构不同。如果您想坚持使用元胞数组,您可以通过

      添加第三个
      k(end+1) = {x3,y3}
      

      对于 matlab 中的结构 @rayryeng 刚刚回答。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-02-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多