2015-05-29 63 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]}, '試驗',{ '正確', '不正確', '不正確', '正確的', '正確的'}) ; **這只是一個例子,我還有其他領域,以及** 因此,例如我只是想與我的結構中的單元格有審判'正確'的單元格,我想將它們存儲在一個單獨的結構以及它們對應於該單元格的方向。我不確定我是否清楚或不爲此道歉。 –

相關問題