1

我想知道 Matlab 这样做的方式:

我有一个称为行的结构(行)数组。

每行看起来像:

point1: [1 128]
point2: [218 128]
 theta: -90
   rho: -127

我需要从结构中所有行的所有 point1(2) 和 point2(2) 中减去一个值。

4

2 回答 2

2

的单线解决方案point1将使用arrayfunsetfield/getfield如下,

lineStructArray2 = arrayfun(@(x) (setfield(x,'point1',getfield(x,'point1')+[0 dy])), lineStructArray)

哪里dy是您要从 中添加的值(减去的负数)point1(2)。为point2.

于 2013-09-26T20:22:28.847 回答
0

如果您的数组是这样制作的:

myArray = [line line2];

所以你有一个结构数组。你不能访问它

myArray(:).point1(2);

所以你必须创建一个循环

myStoringArray = [];
for it = 1:size(myArray,2)
  myStoringArray = [myStoringArray myArray(it).point1(2)];
end
于 2013-09-26T20:14:37.717 回答