Multiply structure by a constant

Like to multiply a structure with fields by a constant, but it giving an error. Is there another way to do this?

回答(2 个)

s.a=1; s.b=2,
s = struct with fields:
a: 1 b: 2
S=structfun(@(f)10*f,s,'uni',0) %multiply by 10
S = struct with fields:
a: 10 b: 20
You have to cycle through the individual fields of the structure:
s = struct('a', [1 2 3 4], 'b', -1)
s = struct with fields:
a: [1 2 3 4] b: -1
for f = fieldnames(s)'
s.(f{1}) = 4 * s.(f{1});
end
s
s = struct with fields:
a: [4 8 12 16] b: -4

2 个评论

It is mainly 1 by 1 value, do you still need to do this as i have variable names
Not sure what you mean by "variable names". Are you referring to the variable name of the struct or the fields of the struct?

请先登录,再进行评论。

类别

在 帮助中心 和 File Exchange 中查找有关 Structures 的更多信息

产品

版本

R2020a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by