群细胞在一个矩阵的平均值
10视图(30天)
显示旧的评论
嗨,我有一个问题,可能souund傻,但我是一个初学者在MATLAB。我有一个20 x20的矩阵。我想找到每个4行和列的平均值,例如(1:4,1:4),那么(1:4,8),…(1:4,十六20),然后继续下一组,直到我找到最后一组的平均值为(十六20,十六20),然后我想把它们放在一个列表。我知道这可以很容易地在一个for循环(或者两个for循环),但我仍然困惑怎么做。感谢任何帮助。我把一个图来缓解想象的问题。
我迄今为止:
为i = 1:4:20
意思是((我+ 3,我:+ 3),“所有”)
结束
但这给对角组的平均只!
1评论
Sulaymon Eshkabilov
2021年6月1日
看一看这帮助讨论意味着calc的细胞阵列:
//www.tianjin-qmedu.com/matlabcentral/answers/315835-mean-values-of-cell-arrays
接受的答案
雅各布·b·尼尔森
2021年6月1日
编辑:雅各布·b·尼尔森
2021年6月1日
你是正确的!你确实想要使用两个for循环,因为你想在二维空间中执行操作。
一个for循环可以指定任何大小的采取措施。你想要的步骤4,你指定它,说因为我= 1:4:17这意味着我从1开始,采取措施4每一个增量,直到你达到17。17你说什么?是的,因为如果你从17日开始,然后添加3内的循环,你打20:)(注意,你也可以为我写= 1:4:20但它将停留在17岁,所以停止在17脚本看起来更漂亮)。
现在显而易见的挑战是你失去动态的能力指数结果在循环中,循环计数器跳跃以来4。我相信比我更聪明的人有一个聪明的路要走,但我通常只是让自己的柜台,我可以增加1每循环迭代…
x =兰德(20、20);%的例子只是一个20 20随机数
counter1 = 1;%我循环计数器,从1开始
counter2 = 1;
为i = 1:4:20%这给你一个维度,所以行,或沿着列
为j = 1:4:20%这里得到第二个维度
%现在可以在步骤4中,执行操作和索引
%定制计数器。你从j j + 3,它给你从1
% 4第一个去,5到8下等等。
x_avg (counter1 counter2) =意味着(x (j + 3,我:我+ 3),“所有”);
counter1 = counter1 + 1;%增加——但只是在柜台
%在j循环“j”方向
结束
%后我们完成了第一个完整的循环,重置计数器“j”
% 1,增量的“我”计数器1:
counter1 = 1;
counter2 = counter2 + 1;
结束
x_avg