MATLAB ttest2命令在2D和3D矩阵中的相同数据上使用时给出不同的值?

MATLAB ttest2命令在2D和3D矩阵中的相同数据上使用时给出不同的值?,matlab,matrix,statistics,Matlab,Matrix,Statistics,我正在使用MATLAB对一些数据进行统计。我有两个17x206x378矩阵,其中维度1是来自同一组的受试者,因此矩阵1中有17个受试者,矩阵2中有17个受试者。我想执行测试,以获得206个p值。然后,我想分别为第三维中的378个元素中的每一个做这个 假设u是一个17x206x378矩阵,d是一个不同的17x206x378矩阵。 我基本上是这样开始的: [h,p,ci,s]=ttest2u,d 事实上,这给了我一个1x206x378大小的p矩阵,所以一切看起来都很棒 然后,为了进行快速检查,我从每

我正在使用MATLAB对一些数据进行统计。我有两个17x206x378矩阵,其中维度1是来自同一组的受试者,因此矩阵1中有17个受试者,矩阵2中有17个受试者。我想执行测试,以获得206个p值。然后,我想分别为第三维中的378个元素中的每一个做这个

假设u是一个17x206x378矩阵,d是一个不同的17x206x378矩阵。 我基本上是这样开始的: [h,p,ci,s]=ttest2u,d

事实上,这给了我一个1x206x378大小的p矩阵,所以一切看起来都很棒

然后,为了进行快速检查,我从每个矩阵中提取了第一个三维元素: u1=u:,:,1;d1=d:,:,1

并通过您期望的方式对该数据运行test2: [h1,p1,ci1,s1]=ttest2u1,d1

我再次得到了一个1x206P1结果矩阵,但值与1x206x378 p矩阵中的值不同。当我绘制p:,:,1和p1向量中的值时,得到的图看起来非常相似,但并不完全相同。 显然,其中一个给出的结果低于.05,在某些情况下,另一个没有,我不想报告一个虚假的结果,所以我想有两个问题

1我的印象是,我正在对相同的数据进行测试,那么这里到底发生了什么? 2如果我最终想要为378个三维元素中的每个元素获得206个p值,那么正确的方法是什么


谢谢你的帮助

我运行了以下代码:

u = rand(17,206,378);
d = rand(17,206,378);
u1 = u(:,:,1);
d1 = d(:,:,1);
[h,p,ci,s] = ttest(u,d);
[h1,p1,ci1,s1] = ttest(u1,d1);
sum(abs(p1(1,:)- p(1,:,1)))
输出为0,表示p和p1的对应元素相同。也许这是一个索引问题