遍历时查找矩阵的索引

时间:2017-03-14 12:03:37

标签: matlab matrix indices

我有一个矩阵:
1个| 2个| 3个| 4个
4个| 5个| 6个| 7个
7 | 8 | 9 | 10
10个| 11个| 12个| 13个
我想将这个矩阵的指数乘以另一个不同大小的矩阵的指数:
7个| 8个| 9个
9个| 10个| 10个
10个| 11个| 11个
对于这两个矩阵,我使用了以下for循环:

for x=1:4  
  for y=1:4  
     for m=1:3  
       for n=1:3  
          c=(m*x+n*y);
       end
     end
  end
end

有没有办法在不使用循环的情况下重写上面的代码?如果每个元素的索引都可以在上面的矩阵中生成,我认为可以做到。请帮忙

1 个答案:

答案 0 :(得分:0)

mx = m'*x; 
mx = mx(:);
ny = n'*y;
ny = ny(:);
mxe = repmat(mx, [length(ny), 1]);
nye = repmat(ny, [length(mx), 1]);
c = mxe+nye;

这将导致c包含在那个循环中放入的所有值(注意在循环中,值被赋值并被覆盖)。