作业帮 > 综合 > 作业

有一组m行n列的数组,在matlab中如何编程,每三个数求一次平均数(行与列分别求)?

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/28 15:57:16
有一组m行n列的数组,在matlab中如何编程,每三个数求一次平均数(行与列分别求)?
给你一个非常完整的程序,基本上考虑了各种可能
程序:
clear
clc
m = input('输入m:');
n = input('输入n: ');
A = rand(m,n); %%%%%% 你未给出矩阵,我就自己产生个随机的,自己替换
AA = A(:);
%%%%%%%%% 按行取3个平均 %%%%%%%
disp('按行取还是按列取?')
disp('按行选择1,按列选择2.')
choose = input('选择:');
switch choose
case 1
temp = A(:);
AA = temp';
case 2
AA = A(:);
otherwise
disp('error input!')
end
if mod(length(AA),3)==0
myend = length(AA);
else
myend = length(AA)-3;
end
jj = 1;
for ii = 1:3:myend
cxd1 = AA(ii:ii+2);
BB(jj) = mean(cxd1);
jj = jj+1;
end
yushu = mod(m*n,3);
switch yushu
case 0
disp('取平均后的结果:')
BB
case 1
disp('取平均后的结果:')
BB
disp('多余一个数值:')
disp(AA(end))
case 2
disp('取平均后的结果:')
BB
disp('多余两个数值:')
disp(AA(end-1:end))
end

结果事例:
输入m:4
输入n: 4
按行取还是按列取?
按行选择1,按列选择2.
选择:1
取平均后的结果:
BB =
0.5091 0.7736 0.5238 0.4586 0.7605
多余一个数值:
0.9823


copyright(c) cxd1301