2017-05-03 67 views
0

我有一个sample是一个数字向量的结构。我想用sample/2替换sample中的数字。但是,我不知道如何克服以下错误:替换结构中的多个值

Scalar structure required for this assignment.

任何建议都非常欢迎。

例子:

field1 = 'event'; 
value1 = {'A', 'B', 'C', 'D'}; 
field2 = 'sample'; 
value2 = 22; 

A = struct(field1, value1, field2, value2); 

我想要做什么:

A.sample = round([A.sample]/2,0); 
+0

你可以发布一个最简单的工作例子或一个'A.event.sample'的例子。 – JacobD

+0

Wha t确实是'size(A.event)'return? – codeaviator

+1

[修改结构的字段值! ](http://stackoverflow.com/questions/39768606/modifying-field-values-of-structure-matlab) – codeaviator

回答

0

您应该使用deal功能,您的计算矩阵分发到结构的元素:

sampleCell = num2cell(round([A.sample]/2,0)); % first convert result to cell, to comply with the `deal` syntax 
[A.sample] = deal(sampleCell{:});