matlab 等分数组,科学网-Matlab: 如何对矩阵分块并对各块进行运算-刘磊的博文

本文主要是介绍matlab 等分数组,科学网-Matlab: 如何对矩阵分块并对各块进行运算-刘磊的博文,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

矩阵分块用mat2cell命令,其用法如下图所示(取自Matlab Help):

8511413cad2eed61a2db8004747b25d9.png

例1:矩阵 A=[1 2 3 4;4 5 6 7;7 8 9 10;10 11 12 13], 将矩阵等分为4个2*2矩阵。

>> A=[1 2 3 4;4 5 6 7;7 8 9 10;10 11 12 13]

A =

1     2     3     4

4     5     6     7

7     8     9    10

10    11    12    13

>> B=mat2cell(A,[2 2],[2 2])

B =

[2x2 double]    [2x2 double]

[2x2 double]    [2x2 double]

对每个分块进行运算,利用cellfun函数。

例2:求上述各个分块的平均值。

>> C=cellfun(@mean,cellfun(@mean,B,'UniformOutput',false))

C =

3     5

9    11

注意最里面的mean是求各块列平均,需要再平均一次才得到每一分块的总平均。应为最里面的mean运算后得到的是cell矩阵,所以false掉‘UniformOutput’参数。外面的一个mean运算得到的是数组,就不需要这样做了(默认的是不false)

例3:求上述各分块的总和。

>> D=cellfun(@sum,cellfun(@sum,B,'UniformOutput',false))

D =

12    20

36    44

这个例子展示了cell型矩阵的运算并不需要用新的函数,只是需要将对应的矩阵运算符与cellfun函数结合即可。

转载本文请联系原作者获取授权,同时请注明本文来自刘磊科学网博客。

收藏

分享

分享到:

这篇关于matlab 等分数组,科学网-Matlab: 如何对矩阵分块并对各块进行运算-刘磊的博文的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/436312

相关文章

hdu2241(二分+合并数组)

题意:判断是否存在a+b+c = x,a,b,c分别属于集合A,B,C 如果用暴力会超时,所以这里用到了数组合并,将b,c数组合并成d,d数组存的是b,c数组元素的和,然后对d数组进行二分就可以了 代码如下(附注释): #include<iostream>#include<algorithm>#include<cstring>#include<stack>#include<que

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi

uva 575 Skew Binary(位运算)

求第一个以(2^(k+1)-1)为进制的数。 数据不大,可以直接搞。 代码: #include <stdio.h>#include <string.h>const int maxn = 100 + 5;int main(){char num[maxn];while (scanf("%s", num) == 1){if (num[0] == '0')break;int len =

hdu 1166 敌兵布阵(树状数组 or 线段树)

题意是求一个线段的和,在线段上可以进行加减的修改。 树状数组的模板题。 代码: #include <stdio.h>#include <string.h>const int maxn = 50000 + 1;int c[maxn];int n;int lowbit(int x){return x & -x;}void add(int x, int num){while

业务中14个需要进行A/B测试的时刻[信息图]

在本指南中,我们将全面了解有关 A/B测试 的所有内容。 我们将介绍不同类型的A/B测试,如何有效地规划和启动测试,如何评估测试是否成功,您应该关注哪些指标,多年来我们发现的常见错误等等。 什么是A/B测试? A/B测试(有时称为“分割测试”)是一种实验类型,其中您创建两种或多种内容变体——如登录页面、电子邮件或广告——并将它们显示给不同的受众群体,以查看哪一种效果最好。 本质上,A/B测

hdu 4565 推倒公式+矩阵快速幂

题意 求下式的值: Sn=⌈ (a+b√)n⌉%m S_n = \lceil\ (a + \sqrt{b}) ^ n \rceil\% m 其中: 0<a,m<215 0< a, m < 2^{15} 0<b,n<231 0 < b, n < 2^{31} (a−1)2<b<a2 (a-1)^2< b < a^2 解析 令: An=(a+b√)n A_n = (a +

hdu 6198 dfs枚举找规律+矩阵乘法

number number number Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Problem Description We define a sequence  F : ⋅   F0=0,F1=1 ; ⋅   Fn=Fn

C语言:柔性数组

数组定义 柔性数组 err int arr[0] = {0}; // ERROR 柔性数组 // 常见struct Test{int len;char arr[1024];} // 柔性数组struct Test{int len;char arr[0];}struct Test *t;t = malloc(sizeof(Test) + 11);strcpy(t->arr,

C 语言基础之数组

文章目录 什么是数组数组变量的声明多维数组 什么是数组 数组,顾名思义,就是一组数。 假如班上有 30 个同学,让你编程统计每个人的分数,求最高分、最低分、平均分等。如果不知道数组,你只能这样写代码: int ZhangSan_score = 95;int LiSi_score = 90;......int LiuDong_score = 100;int Zhou

matlab读取NC文件(含group)

matlab读取NC文件(含group): NC文件数据结构: 代码: % 打开 NetCDF 文件filename = 'your_file.nc'; % 替换为你的文件名% 使用 netcdf.open 函数打开文件ncid = netcdf.open(filename, 'NC_NOWRITE');% 查看文件中的组% 假设我们想读取名为 "group1" 的组groupName