我想知道Matlab这样做的方法:
我有一个名为lines的结构数组(Line)。
每一行看起来像:
point1: [1 128] point2: [218 128] theta: -90 rho: -127
我需要从struct中所有行的point1(2)和point2(2)中减去一个值。
答案 0 :(得分:2)
point1
的单行解决方案将使用arrayfun
和setfield
/ getfield
,如下所示,
lineStructArray2 = arrayfun(@(x) (setfield(x,'point1',getfield(x,'point1')+[0 dy])), lineStructArray)
其中dy
是您要添加的值(减去负数)point1(2)
。为point2
制作类似的命令。
答案 1 :(得分:0)
如果您的数组是这样的:
myArray = [line line2];
所以你有一个struct数组。您无法使用
访问它myArray(:).point1(2);
所以你必须创建一个循环
myStoringArray = [];
for it = 1:size(myArray,2)
myStoringArray = [myStoringArray myArray(it).point1(2)];
end