我有一个矩阵:
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
有没有办法在不使用循环的情况下重写上面的代码?如果每个元素的索引都可以在上面的矩阵中生成,我认为可以做到。请帮忙
答案 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包含在那个循环中放入的所有值(注意在循环中,值被赋值并被覆盖)。