【问题标题】:In MATLAB how to write a structure that its fields are valued iteratively?在 MATLAB 中,如何编写一个其字段被迭代赋值的结构?
【发布时间】:2016-02-16 20:00:21
【问题描述】:

我在迭代地增加结构的大小时遇到​​了问题。我找不到它的解决方案。

我需要有 200 个向量(命名为 EVE1-EVE200),作为结构的字段。 我在matlab中写了如下代码:

 for i=1:200;
    events=struct(['EVE' num2str(i)],[]);
end

但它只是形成最后一个结构。 有人能帮帮我吗? 这种初始化数据库的方式是不是最好的方式?

【问题讨论】:

  • 您只是在为每个循环创建一个新结构,而不是附加到您之前创建的结构。

标签: matlab for-loop iteration structure


【解决方案1】:

对于你所要求的,最好使用以下方法:

events = struct;
for i=1:200
    events.( ['EVE' num2str(i)] ) = [];
end

但是为什么不使用元胞数组而不是结构呢?

events = {};
for i=1:200
    events{i} = [];
end

后者更清晰,并且具有相同的目的。

【讨论】:

  • 是的,变量 variablenames 通常是较差的编码风格,而 events{i} 要好得多。 +1 安德烈亚斯 H.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-01-01
  • 1970-01-01
  • 2015-02-03
  • 1970-01-01
  • 1970-01-01
  • 2010-12-25
  • 1970-01-01
相关资源
最近更新 更多