如何创建乘法表作为矩阵?

时间:2015-05-18 20:13:47

标签: matlab

如何在MATLAB中将乘法表创建为矩阵? 我已经尝试了很长时间,但到目前为止我还没有成功。我有关于如何将矩阵的不同列堆叠在一起的问题......有什么帮助吗?

2 个答案:

答案 0 :(得分:5)

  

我想创建一个乘法表矩阵。

你可以通过计算适当的向量(下面称为x)的外积(a.k.a二元乘积)来做到这一点:

>> x = [1 : 10].';    % for a multiplication table from 1*1 up to 10*10 (inclusive)

>> A = x * x.'        % n-by-1 times 1-by-n = n-by-n

A =

    1     2     3     4     5     6     7     8     9     10
    2     4     6     8    10    12    14    16    18     20
    3     6     9    12    15    18    21    24    27     30
    4     8    12    16    20    24    28    32    36     40
    5    10    15    20    25    30    35    40    45     50
    6    12    18    24    30    36    42    48    54     60
    7    14    21    28    35    42    49    56    63     70
    8    16    24    32    40    48    56    64    72     80
    9    18    27    36    45    54    63    72    81     90
   10    20    30    40    50    60    70    80    90    100

答案 1 :(得分:3)

以下是一些矢量化方法。我建议你阅读每个函数的链接文档,看看这些方法是如何工作的。

n成为您想要乘法表的数字。然后你就可以做到:

  1. 使用bsxfun

    t = bsxfun(@times, 1:n, (1:n).');
    
  2. 使用ndgrid

    ii = ndgrid(1:n);
    t = ii.*ii.';
    
  3. 使用cumsum(因为乘法重复添加):

    t = cumsum(repmat(1:n, n, 1));