Matlab中对象/结构数组的属性/字段算术

时间:2012-03-30 12:49:54

标签: matlab object struct

给定两个带有字段f1的结构数组A和B:

A = struct('f1',{1,2,3})
B = struct('f1', {4,5,6})

您可以通过

将struct array A的f1字段的内容分配给B的字段
[B.f1] = A.f1

但是如果你想在场上进行算术运算,我无法弄清楚该做什么,例如,如果你想在A中存储A的f1字段的负数。

[B.f1] = -A.f1

不起作用,您需要先连接A的元素,以便运算符工作

-[A.f1]

然后结果是一个向量,不知何故你需要“解包”以匹配输出参数的数量。

1 个答案:

答案 0 :(得分:3)

您可以使用num2cell

tmp=num2cell(-[A.f1]);
[B.f1]=tmp{:};

结果:

B.f1

ans =
    -1
ans =
    -2
ans =
    -3