我有.mat文件格式,我想修改以传递给另一个软件。 该文件包含4个字段的1x1结构(名称:数据)。其中一个是1x15结构(名称:事件),另外4个字段。我想修改这些字段。 例如,第一个是时间'我尝试以不同的方式修改:
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上的结构机制所以我的问题可能有点愚蠢,但这是我第二次使用它。
答案 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
函数的参数。