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