Matlab 如何在3D阵列上执行t测试?

Matlab 如何在3D阵列上执行t测试?,matlab,multidimensional-array,statistics,Matlab,Multidimensional Array,Statistics,我在Matlab中有一系列尺寸为3x3x3的3D阵列。Matlab的ttest函数返回2D数组,当我查看文档时,我看到该方法对列执行t测试。我想对整个矩阵空间进行t检验。如何在不手动创建自己的t-test脚本的情况下编写此代码 编辑:我希望得到两个输出,其中包含ttest方法输出的p值和t值,如中所示 [~,pval,~,tval]=t测试(x,y) 但这只给出了上面提到的2D数组。我要求输出是一个3x3x3数组,给出每个点的t值,理想情况下,另一个数组包含对应于这些t值的p值。我想我不清楚我的

我在Matlab中有一系列尺寸为3x3x3的3D阵列。Matlab的ttest函数返回2D数组,当我查看文档时,我看到该方法对列执行t测试。我想对整个矩阵空间进行t检验。如何在不手动创建自己的t-test脚本的情况下编写此代码

编辑:我希望得到两个输出,其中包含ttest方法输出的p值和t值,如中所示

[~,pval,~,tval]=t测试(x,y)


但这只给出了上面提到的2D数组。我要求输出是一个3x3x3数组,给出每个点的t值,理想情况下,另一个数组包含对应于这些t值的p值。

我想我不清楚我的需要。你指出了一些事实,但我希望从ttest获得输出,这些输出给出数组中每个点的p值和t值。我已经添加到我的帖子来澄清这一点。谢谢。对不起,我还是没有正确地解释我自己。我拥有的图像是PET成像会话计数值的3D数组。我想做一个t检验,将研究中的后续帧与第一帧进行比较,并输出一个新的数组,其中包含与整个图像比较时每个体素显示的t值。啊!因此,您希望(1)将图像连接到单个4D数组(使用
cat(4,img1,img2,img3,…)
,如果有单元格数组,则
cat(4,img{:})
将执行此操作),(2)排列数组,使新维度成为第一个维度(列),然后(3)沿列应用统计信息。通常,MATLAB函数允许您选择要沿其工作的维度,因此您可以跳过步骤2。如果您不能跳过第2步,那么重塑图像并沿所需尺寸直接连接可能更有效。如果所有的图片都不在内存中,你必须循环。我会尝试一下,让你知道这是怎么回事。非常感谢你的帮助。我是一个长期的读者,但我是第一次向SE发帖,我真的很感谢你的关注。@CrisLuengo我已经尝试按照你的建议做了,但仍然收到来自ttest的2D输出,我将所有内容连接到一个空的第四维度,然后排列维度,因此空维度是你建议的第一个维度。然后我做了一个测试。Matlab是否自动抑制空维度?