简单:如何在Matlab中连接更多的struct数组元素?

时间:2015-10-12 23:23:47

标签: arrays matlab struct concatenation elements

我将以下数组k定义为坐标的结构数组,即k = {{x1,y1},{x2,y2}}。 如果我想在这个结构数组中再添加一个坐标,我会使用哪种符号?伪代码为k = k + {x3,y3},结果为{{x1,y1},{x2,y2},{x3,y3}}。作为一个Python编码器,我在使用Matlab的语法时遇到了麻烦。

由于

2 个答案:

答案 0 :(得分:0)

假设您的结构已包含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

答案 1 :(得分:0)

使用您的表示法,您创建了一个包含单元格的单元格数组。这与matlab中的结构不同。如果你想坚持使用单元格数组,可以添加第三个

k(end+1) = {x3,y3}

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