【发布时间】: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
我将以下数组 k 定义为坐标结构数组,即 k={{x1,y1},{x2,y2}}。 如果我想在这个结构数组中再添加一个坐标,我会使用什么表示法?伪代码为 k=k+{x3,y3},结果为 {{x1,y1},{x2,y2},{x3,y3}}。作为一名 Python 编码员,我对 Matlab 的语法有疑问。
谢谢
【问题讨论】:
标签: arrays matlab struct concatenation elements
假设您的结构已经包含x 和y 坐标,并且您有一个包含其他坐标的主结构,在您的情况下为k。这是一个包含两个点的示例结构,其中每个结构都有两个字段:x 和 y:
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];
这是将结构连接到更大的结构列表的最常用方法。
作为证据,让我们看看串联前后的x和y坐标:
>> 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
【讨论】:
使用您的符号,您创建了一个包含单元格的单元格数组。这与 matlab 中的结构不同。如果您想坚持使用元胞数组,您可以通过
添加第三个k(end+1) = {x3,y3}
对于 matlab 中的结构 @rayryeng 刚刚回答。
【讨论】: