使用一个单元格阵列创建另一个

时间:2016-06-21 17:42:38

标签: matlab psychtoolbox

我正在进行一项实验,我有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。

1 个答案:

答案 0 :(得分: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