我在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中处理矩阵的好方法,并且想知道这里是否有简单的解决方案。
我正在寻找的应用程序是使用这种形式放大图像矩阵,然后使用插值填充零。
答案 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;