此问题与以下链接中的帖子有关:
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和语法的新手,所以如果我滥用我的描述中的任何术语,我会道歉。
感谢您的帮助!
雅各布
答案 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
查看所有小数位数。