2016-06-21 38 views
0

我正在運行一個實驗,其中有5個不同的條件,參與者在每個試驗中給出0-9的響應。 作爲運行實驗的結果,我得到了兩個細胞陣列 - 一個包含每個試驗的條件,一個包含參與者對該試驗的反應。 例如,這(對於10次試驗,2爲每個條件):使用一個單元格陣列創建另一個

condition = 

2  1  4  4  2  5  3  1  3  5 


ratings = 

4  2  8  7  4  9  5  1  3  8 

我想運行迴歸,因此,我希望的條件轉換爲實際上表示自變量的值,這是距離兩個圖像之間(以像素爲單位)。

級別1 = 580個像素,2 = 480,3 = 380,4 = 280,5 = 180

對不起,如果這是一個很明顯的問題,但如何可以容易地創建一個新的小區數組 - '距離像素' - 從我的'條件'單元格數組? 我對MATLAB和編程非常新,所以很遺憾,如果我錯過了任何重要的東西,我會嘗試編輯這個問題,儘可能多的迴應我的建議。 我在windows上運行帶有psychtoolbox的MATLAB。

+2

'B = 680 - condition。* 100;'你爲什麼使用單元陣列? – excaza

+0

非常感謝你!我不完全確定。我計劃沒有進行迴歸,我的印象是我應該使用單元陣列來做到這一點,但我很可能是錯的! – Emily

+0

如果你可以避免使用單元陣列,那就這樣做。除此之外,迴歸是一個非常**數字的以**爲中心的操作,所以根本不要使用單元陣列......實際上,從不迴歸。 – rayryeng

回答

1

有幾種方法。

首先,你可以使用數學關係:

condition = [2, 1, 4, 4, 2, 5, 3, 1, 3, 5]; 
B = 680 - condition.*100 

將返回:

B = 

    480 580 280 280 480 180 380 580 380 180 

其次,你可以利用MATLAB的linear indexing做一個查找表:

condition = [2, 1, 4, 4, 2, 5, 3, 1, 3, 5]; 
level = [580, 480, 380, 280, 180]; 
B2 = level(condition) 

其中返回:

B2 = 

    480 580 280 280 480 180 380 580 380 180 

我寫這些,而無需使用電池陣列,但是你可以利用cell2matnum2cell/mat2cell在需要的地方,如果你必須使用電池陣列的某些原因。

相關問題