首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Matlab -从一个带有空格的较小矩阵中创建一个较大的矩阵

Matlab -从一个带有空格的较小矩阵中创建一个较大的矩阵
EN

Stack Overflow用户
提问于 2018-01-21 01:15:32
回答 1查看 28关注 0票数 1

假设我有一个3 x 3的矩阵(A),我想让它成为一个5 x 5的矩阵(B),但是矩阵A有以下内容:

代码语言:javascript
复制
1 2 3
4 5 6
7 8 9

以及由此产生的更大的矩阵B,需要具有以下内容:

代码语言:javascript
复制
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

我知道这可以通过一些"Fors“来完成,如下所示:

代码语言:javascript
复制
  %% We get the dimensions of our matrix. 
  [xLength, yLength] = size(InMat); 

  %% We create a matrix of the double size.
  NewInMat = zeros(xLength * 2, yLength * 2);

  %% We prepare the counters to fill the new matrix.
  XLenN = (xLength * 2) -1;
  YLenN = (yLength * 2) - 1;

  for i = 1 : XLenN
      for j = 1 : YLenN
         if mod(i, 2) ~= 0
           if mod(j, 2) ~= 0
              NewInMat(i, j) = InMat(i, j);
           else
              NewInMat(i,j) = mean([InMat(i, j - 1), InMat(i, j + 2)]);  
           end
         end
    end
end

但我想知道是否有更简单的方法,或者Matlab是否有工具来完成这项任务。首先要感谢大家!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-21 01:28:36

您可以使用索引:

代码语言:javascript
复制
InMat = [...
1 2 3
4 5 6
7 8 9];
s = size(InMat)*2-1;
NewInMat(1:2:s(1), 1:2:s(2)) = InMat;

在这里,NewInMat是同时分配和填充的。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48358934

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档