没有循环的增量矩阵

时间:2015-04-24 13:20:32

标签: matlab

(只是为了个人理解而接近Matlab),假设在这种情况下我有Z,Y矩阵Z = 1 Y = 3

A = 1:3

output: 1 2 3

现在我需要垂直增加矩阵以获得:

1 2 3
2 4 6
3 6 9

如何在不使用循环的情况下实现这一目标?

2 个答案:

答案 0 :(得分:4)

最简单的方法是使用向量乘法。

如果你的目标是获得

1 2 3
2 4 6
3 6 9

给出A=1:3

你需要做的就是

A.'*A

这将使.'的转置(A)的矢量积与A本身

答案 1 :(得分:2)

另一种方法是使用bsxfun

A = [1 2 3];
B = bsxfun(@times, A.', A);

这与Federico的答案基本相同,其中载体的外部产物被采用。