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

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

关注:216  答案:3  手机版

解决时间 2021-03-05 21:45

提问者繁华落尽

2021-03-05 00:52

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

最佳答案

二级知识专家北方尋麓

2021-03-05 01:38

你的三个数 是不是一行中的 1 2 3求平均值 然后4 5 6 求平均值??如果是的话

[m,n]=size(A);%%%%有一组m行n列的数组

b=A(1:end-2,:);

c=A(2:end-1,:);

d=A(3:end,:);

hang=(b+c+d)/3;%%行平均值

列同理

全部回答

1楼癡情菂尐豬豬

2021-03-05 03:31

给你一个非常完整的程序,基本上考虑了各种可能

程序:

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

2楼久而旧之

2021-03-05 02:27

你好!

你的三个数 是不是一行中的 1 2 3求平均值 然后4 5 6 求平均值??如果是的话

[m,n]=size(A);%%%%有一组m行n列的数组

b=A(1:end-2,:);

c=A(2:end-1,:);

d=A(3:end,:);

hang=(b+c+d)/3;%%行平均值

列同理

希望对你有所帮助,望采纳。

我要举报

如以上信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!

推荐资讯

大家都在看

### 如何在MATLAB中将一个数组追加到另一个数组 在MATLAB中,可以使用多种方法将一个数组追加到另一个数组的末尾。以下是几种常见的实现方式: #### 方法一:使用方括号 `[]` 进水平连接 如果两个数组具有相同的数,则可以通过简单地将其放在方括号内并用逗号分隔来进水平拼接。 ```matlab A = [1, 2, 3]; B = [4, 5, 6]; C = [A, B]; % 结果 C = [1, 2, 3, 4, 5, 6] ``` 这种方法适用于向量或矩阵之间的横向扩展[^1]。 #### 方法二:使用竖直方向上的连接 当需要垂直堆叠两个向量或将多个向量组合成一个新的矩阵时,可以在方括号内部通过分号`;`来分割各个部分。 ```matlab D = [7; 8; 9]; E = [10; 11; 12]; F = [D; E]; % F 将成为两者的纵向叠加形式 ``` 此操作同样要运算的对象拥有匹配维度以便能够正确执粘连动作。 #### 方法:利用内置函数 `cat()`, `horzcat()` 和 `vertcat()` 对于更复杂的场景下可能涉及到多维数组的操作,MATLAB 提供了一些专门用于此类目的的功能性命令。 - 对于二维情况下的水平和垂直连接分别可调用 `horzcat(A,B)` 或者 `vertcat(D,E)` - 更通用的形式则是采用 `cat(dim,A,B,...)` 函数,在指定维度上完成对象间的串联工作 例如: ```matlab G = horzcat([1 2],[3 4]); % G = [1 2 3 4] H = vertcat([1;2],[3;4]); % H = [1;2;3;4] I = cat(2,[1 2],[3 4]); % I = [1 2 3 4], dim=2 表示按第二维度即为单位进合并 J = cat(1,[1;2],[3;4]); % J = [1;2;3;4], dim=1 则代表沿第一维度也就是为基础做累加 ``` 上述种途径均能有效地满足不同场合下关于数组间附加的需
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值