获取结构matlab中的最大值

获取结构matlab中的最大值,matlab,Matlab,我有一个结构S,大小3x1,其中S(1,1)=[209443319206]S(2,1)=[300473,1,1]S(3,1)=[305470,1,1]我想做的是只保留一个内部结构,其中S的大小为1x1,而不是nx1此结构是其他结构中第3列和第4列中值最高的结构。因此,在我的示例中,S将只有S(1,1),因为它的第3列和第4列是S(2,1)和S(3,1)中的最高列,其值为319206,而S(2,1)和S(3,1)SoS(2,1)和S(3,1)将被删除,S将是1x1结构,只有S(1,1)。因此,如果

我有一个结构
S
,大小
3x1
,其中
S(1,1)=[209443319206]
S(2,1)=[300473,1,1]
S(3,1)=[305470,1,1]
我想做的是只保留一个内部结构,其中
S
的大小为
1x1
,而不是
nx1
此结构是其他结构中第3列和第4列中值最高的结构。因此,在我的示例中,
S
将只有
S(1,1)
,因为它的第3列和第4列是S(2,1)和S(3,1)中的最高列,其值为319206,而
S(2,1)
S(3,1)
So
S(2,1)
S(3,1)
将被删除,
S
将是
1x1
结构,只有
S(1,1)
。因此,如果有人能提出建议,我将假定您对第3列和第4列大于其他数组这一事实的衡量是基于它们的总和

  S = struct();  
  S(1,1).v=[209, 443, 319, 206];
  S(2,1).v=[300, 473, 1, 1];
  S(3,1).v=[305, 470, 1, 1];


  % find index with maxium 3th and 4th column based on their sum
  [~, ind] = max(cellfun(@(v) v(3)+v(4), {S(:).v}))

  % set S to be equal only to the value with highest 3th and 4th column
  S = S(ind);
顺便说一句,语法
S(1,1)=[209443319106]
不正确。不能让结构像这样。因此,我在结构中添加了一个
v
字段

如果您实际指的是一个
单元格
,而不是@chappjc所示的
结构
,那么您可以按如下操作:

  S = {};  
  S{1,1}=[209,443,319, 206];
  S{2,1}=[300,473,1,1];
  S{3,1}=[305,470,1,1];

  [~, ind] = max(cellfun(@(v) v(3)+v(4), S));
  S = S(ind);

我想你的意思是
cell
不是
struct
。未提及任何字段。