我正在进行一项实验,我有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。
答案 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
我在不使用单元格数组的情况下编写了这些内容,但如果由于某种原因必须使用单元格数组,则可以在需要时使用cell2mat
和num2cell
/ mat2cell
。