Arrays 我有一个18*9的矩阵,我想计算6行的平均值,得到一个3*9的矩阵
我想计算矩阵600*9维中6行的平均值。新矩阵的大小应为100*9。有人能帮我吗 我看到了这段代码,用于计算每行2行的平均值,它在2行中运行良好:-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行作为第二行,依此类推,使用平均值和循环:
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