Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 我有一个18*9的矩阵,我想计算6行的平均值,得到一个3*9的矩阵_Arrays_Matlab_Matrix - Fatal编程技术网

Arrays 我有一个18*9的矩阵,我想计算6行的平均值,得到一个3*9的矩阵

Arrays 我有一个18*9的矩阵,我想计算6行的平均值,得到一个3*9的矩阵,arrays,matlab,matrix,Arrays,Matlab,Matrix,我想计算矩阵600*9维中6行的平均值。新矩阵的大小应为100*9。有人能帮我吗 我看到了这段代码,用于计算每行2行的平均值,它在2行中运行良好:- x = rand(1028, 18); result1 = zeros(1028/2, 18); for ii = 1:1028/2; result1(ii,:) = mean(x((2*ii-1):(2*ii),:)); end; 输出矩阵将前6行(输入矩阵)的平均值作为第一行,下6行作为第二行,依此类推,使用平均值和循环:

我想计算矩阵600*9维中6行的平均值。新矩阵的大小应为100*9。有人能帮我吗

我看到了这段代码,用于计算每行2行的平均值,它在2行中运行良好:-

x = rand(1028, 18);

result1 = zeros(1028/2, 18); 
for ii = 1:1028/2;
    result1(ii,:) = mean(x((2*ii-1):(2*ii),:)); 
end;  

输出矩阵将前6行(输入矩阵)的平均值作为第一行,下6行作为第二行,依此类推,使用
平均值和
循环:

data = rand(600,9);
num_groups = 6;
group_size = size(data,1)/num_groups;

mean_by_group = NaN(num_groups, size(data,2));

for k = 1:num_groups
    mean_by_group(k,:) = mean(data((k-1)*group_size+(1:group_size),:),1)
end

让数据定义为

x = rand(600, 9); % example data
N = 6; % group size
无需回路即可轻松获得所需结果:

  • 将数据矩阵重塑为三维阵列,其中沿第一维的大小是所需的组大小
  • 计算沿第一维度的平均值
  • 删除第一个维度,它现在是一个单体
  • 请注意,这一行如何包含上述三个步骤:

                          reshape(x, N, [], size(x,2))                       % step 1
                     mean(                            , 1)                   % step 2
    result = reshape(                                     , [], size(x,2));  % step 3
    

    在标题中,你说你有一个18乘9的矩阵,在文本600乘9,在代码1028乘18。是哪一个?或者我们应该说:沿第一维度有6个大小相等的组?@LuisMendo啊,的确,固定了。
                          reshape(x, N, [], size(x,2))                       % step 1
                     mean(                            , 1)                   % step 2
    result = reshape(                                     , [], size(x,2));  % step 3