matlab - 如何将矩阵的大小加倍并在 Matlab 中传播其元素?

标签 matlab matrix size vectorization

假设我有这样一个矩阵:

a = 
    1    2
    3    4

我想将矩阵的大小加倍并创建如下内容:

aa = 
     1    1    2    2
     1    1    2    2
     3    3    4    4
     3    3    4    4

这样,第一个矩阵中的每个元素都会传播到更大矩阵中的四个元素。

a(i,j) == aa(2*i-1, 2*j-1)
       == aa(2*i  , 2*j-1)
       == aa(2*i-1, 2*j)
       == aa(2*i  , 2*j)

是否有任何预定义函数可以做到这一点?

当然我可以通过两个循环来做到这一点,但我想要最简单和最干净的方法!

最佳答案

使用kron - 克罗内克张量积:

kron(a,ones(2))


ans =
 1     1     2     2
 1     1     2     2
 3     3     4     4
 3     3     4     4

关于matlab - 如何将矩阵的大小加倍并在 Matlab 中传播其元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14576007/

相关文章:

安卓多屏兼容性

delphi - 在 Delphi TForm 上保存最大化和表单大小

http - http中post数据的最大大小

matlab - 使用 Matlab 从 VLFeat 中的 SIFT 描述符中提取 VLAD

java - Matlab通过Java驱动程序从MongoDB集合中删除所有文档

matlab - 字段内的结构

python - 更改矩阵列的条目

c++ - 如何在 Eigen 中将稀疏矩阵转换为密集矩阵

matlab - MATLAB 中的匿名函数损坏。 '@sf%' 是什么意思?

java - 文本文件到字符串矩阵java