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。

4

1 回答 1

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 的线性索引来制作查找表:

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

于 2016-06-21T18:03:33.897 回答