在MATLAB中将零行插入矩阵的有效方法

时间:2018-08-05 11:00:30

标签: matlab matrix

我在MATLAB中有一个大矩阵,我想在矩阵的现有行之间插入零的行和列。我想从(3x3的一个小例子)开始

[1 2 3; 
 4 5 6; 
 7 8 9]

[1 0 2 0 3;
 0 0 0 0 0 
 4 0 5 0 6;
 0 0 0 0 0;
 7 0 8 0 9]

我知道使用for循环很容易做到这一点,但是,我想避免使用for循环,因为在MATLAB中已知它们很慢。

以我的经验,通常有一种在MATLAB中处理矩阵的好方法,并且想知道这里是否有简单的解决方案。

我正在寻找的应用程序是使用这种形式放大图像矩阵,然后使用插值填充零。

1 个答案:

答案 0 :(得分:1)

您可以使用索引分配:

a=...
[1 2 3; 
 4 5 6; 
 7 8 9];
result(1:2:2*size(a,1)-1, 1:2:2*size(a,2)-1) = a;

在这里创建了一个变量result,并填充了它的奇数索引。

其他选项:

result2 = zeros(2*size(a)-1);
result2(1:2:end,1:2:end) = a;