2017-05-03 32 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{:});