MATLAB:如何输出每个坐标值计算的几个二维数组的MEAN和SD的二维数组?

时间:2014-07-21 18:37:11

标签: arrays matlab grouping

此问题与以下链接中的帖子有关:

Looping through a 3D array to find the mean and standard deviation

似乎是前两个命令:1。meanArray = squeeze(mean(dayv,1)); 2. sdArray = squeeze(std(dayv,[],1));)生成输出数组,反映按列逐列应用的给定函数。

我想知道如何生成一个输出数组来计算3d堆栈或多个2d矩阵的每个顶点(如行,列值)的平均值和标准差。

例如,如果我有三个不同控制对象的以下值,我怎么能生成一个表示在每个顶点计算的标准偏差数组(下面生成)的矩阵?

CTRL1
3 4 2 3 2 2 6 2 2

CTRL2
1 5 7 4 2 2 5 6 6

CTRL3
1 8 2 3 3 3 8 6 2

CTRL_OUTPUT_Array_SD

1.1547005384 2.0816659995 2.8867513459 0.5773502692 0.5773502692 0.5773502692 1.5275252317 2.3094010768 2.3094010768

我是MATLAB和语法的新手,所以如果我滥用我的描述中的任何术语,我会道歉。

感谢您的帮助!

雅各布

1 个答案:

答案 0 :(得分:0)

看起来你想要的是这个:

CTRL1 = [3 4 2 3 2 2 6 2 2]; %// data, in the form of row vectors
CTRL2 = [1 5 7 4 2 2 5 6 6];
CTRL3 = [1 8 2 3 3 3 8 6 2];
CTRL = [ CTRL1; CTRL2; CTRL3 ]; %// concat rows to form a matrix
result = std(CTRL, 0, 1); %// std of each column, using "N-1" normalization

您可能希望使用format long查看所有小数位数。