MATLAB:将新矩阵定义为矩阵的线性组合

标签 matlab matrix

例如:

B1 = 1*A1 + 2*A2;
B2 = 3*A1 + 4*A2;

B1、B2、A1、A2 都是 2 x 2 矩阵。

如何有效地定义 B 矩阵?通过执行以下操作:

[B1;B2] = [1 2;3 4]*[A1;A2]

失败了。我想做这样的事情,因为我的任务不仅仅是定义两个矩阵,以便我可以手动输入它。

最佳答案

使用矩阵乘法的实现

假设有一个2D数组scale来存储缩放参数。因此,对于我们的情况,我们会 -

scale = [1 2;3 4];

首先,将 A 矩阵 堆叠为 3D 数组 -

A = cat(3,A1,A2); % Add more matrices here

最后,计算本身可以在 reshape 为2D之后实现为矩阵乘法,并在矩阵乘法之后再进行一次 reshape 以获得这些B矩阵堆叠为 3D 数组 -

B = reshape(reshape(A,4,[])*scale.',2,2,[])

关于MATLAB:将新矩阵定义为矩阵的线性组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38689457/

相关文章:

matlab - 如何在 matlab 中按列向上移动单元格时摆脱 NaN

R - 从 3 个原始向量创建矩阵

c++ - 4x4矩阵预乘和后乘

matlab - 如何在MATLAB中改变图例的显示格式

r - 如何在R中使用Matlab数据?

c++ - 矩阵中的对称位置

linux - Ubuntu 16.10 上的 Matlab 外部编辑器

matlab - 如何在 MATLAB 中选择最大的轮廓

matlab - 在 MATLAB 索引元胞数组中反向查找

matlab - 使用matlab从具有透视失真的图像中进行文本检测