修改结构的字段值! <MATLAB>

时间:2016-09-29 11:08:11

标签: matlab

我有.mat文件格式,我想修改以传递给另一个软件。 该文件包含4个字段的1x1结构(名称:数据)。其中一个是1x15结构(名称:事件),另外4个字段。我想修改这些字段。 例如,第一个是时间&#39;我尝试以不同的方式修改:

data.event.time=[1:15];

我收到错误:

"Scalar structure required for this assignment"

也尝试过:

data.event = setfield(data.event,'time',1:15);

得到了:

 "Scalar structure required for this assignment.

Error in setfield (line 33)
    s.(deblank(strField)) = varargin{end};"

我知道我不了解Matlab上的结构机制所以我的问题可能有点愚蠢,但这是我第二次使用它。

2 个答案:

答案 0 :(得分:1)

你可能正在寻找这个:

for t=1:15
    data.event(t).time=t;
end

如果您有一个要分配给结构的多个元素的向量,则循环是最简单的方法。

不幸的是,似乎没有一种很好的方法可以将向量的元素直接分配给结构的元素。

如果你将矢量改为cellarray,可能没有循环,但我个人认为这是违反直觉的。

答案 1 :(得分:0)

正如Dennis Jaheruddin已经建议的那样,您可以通过转换为单元格数组并使用内置deal函数来避免for循环,如下所示:

deal

need to convert to a cell array,因为你想使用不同的向量元素作为.dataSrc函数的参数。