使用一个元胞数组创建另一个元胞数组
Using one cell array to create another
我正在 运行 进行一个实验,我有 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
如果这是一个非常明显的问题,我很抱歉,但是如何从我的 'condition' 元胞数组中轻松创建一个新的元胞数组 - 'distance in pixels'?
我是 MATLAB 和编程的新手,如果我错过了任何重要的事情,我很抱歉,我会尽可能多地尝试编辑这个问题以回应建议。
我正在 运行 在 windows 上使用 psychtoolbox 使用 MATLAB。
有几种方法。
首先,您可以使用数学关系:
condition = [2, 1, 4, 4, 2, 5, 3, 1, 3, 5];
B = 680 - condition.*100
哪个returns:
B =
480 580 280 280 480 180 380 580 380 180
其次,您可以利用 MATLAB 的 linear indexing 进行查找 table:
condition = [2, 1, 4, 4, 2, 5, 3, 1, 3, 5];
level = [580, 480, 380, 280, 180];
B2 = level(condition)
哪个returns:
B2 =
480 580 280 280 480 180 380 580 380 180
我在没有使用元胞数组的情况下编写了这些内容,但如果您出于某种原因必须使用元胞数组,则可以在需要时使用 cell2mat
and num2cell
/mat2cell
。
我正在 运行 进行一个实验,我有 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
如果这是一个非常明显的问题,我很抱歉,但是如何从我的 'condition' 元胞数组中轻松创建一个新的元胞数组 - 'distance in pixels'? 我是 MATLAB 和编程的新手,如果我错过了任何重要的事情,我很抱歉,我会尽可能多地尝试编辑这个问题以回应建议。 我正在 运行 在 windows 上使用 psychtoolbox 使用 MATLAB。
有几种方法。
首先,您可以使用数学关系:
condition = [2, 1, 4, 4, 2, 5, 3, 1, 3, 5];
B = 680 - condition.*100
哪个returns:
B =
480 580 280 280 480 180 380 580 380 180
其次,您可以利用 MATLAB 的 linear indexing 进行查找 table:
condition = [2, 1, 4, 4, 2, 5, 3, 1, 3, 5];
level = [580, 480, 380, 280, 180];
B2 = level(condition)
哪个returns:
B2 =
480 580 280 280 480 180 380 580 380 180
我在没有使用元胞数组的情况下编写了这些内容,但如果您出于某种原因必须使用元胞数组,则可以在需要时使用 cell2mat
and num2cell
/mat2cell
。