2015-05-29 76 views
0

我是MATLAB新手,非常感谢您的帮助。我有一个结构“s”和里面“s”我有领域其中之一是“t”的审判和内部“t”我有近20个其他领域,他们都有价值写在1xn矩阵。我有近900次试验,并希望根据每次试验中的A场值(s.t.A)选择特定的试验。我怎样才能做到这一点?我有点失落,甚至不知道我应该寻找什么。谢谢。根据字段的值选择结构数组中的特定字段。

+1

你能举一个简短的例子来说明你的问题,请输入结果。我假设你只是想通过查看你的数据很容易做索引。假设S是4维的,你可以尝试s(:,t,1,:)设置t = 1,看看你得到了什么 – GameOfThrows

+0

它的一个<1x1 struct>“s”,其中包含一个名为“t”的字段,它是<1x900 struct>。 t具有900个单元,并且每个单元包含不同字段名称下的所有数据,例如“方向”,其是每个试验“t”具有可变长度的矢量[a a a a ...]。 a的值是0或180.我想要分组或选择所有具有值180的方向的试验“t”。非常感谢你 –

+0

好吧,我明白了,你可以使用大括号来选择单元格{,索引应该和矩阵中的一样。 – GameOfThrows

回答

0

我不清楚你的变量实际上是什么,它对你如何操作它们很重要。例如,您可能希望查看structfun的问题 - 它允许您将函数应用于结构的每个字段,但它必须是标量,例如, structfun(@(x) x==180,s.t)将为t的每个字段返回==180的结果。

如果你的结构不是标量,那么你可以尝试逻辑索引,例如[s.t([s.t.direction]==180)]将返回一个结构,其中条件direction == 180为true。

如果你提供了你正在使用的实际变量,那么你可能会得到更有帮助的答案。

+0

数据看起来更像这样: DATA = struct('Direction',{[1,1,1,1],[1,1,2,1],[2,2,2,2,2],[ 2,2,2,2,1,2],[2,2,2,2]}, '试验',{ '正确', '不正确', '不正确', '正确的', '正确的'}) ; **这只是一个例子,我还有其他领域,以及** 因此,例如我只是想与我的结构中的单元格有审判'正确'的单元格,我想将它们存储在一个单独的结构以及它们对应于该单元格的方向。我不确定我是否清楚或不为此道歉。 –

相关问题