Matlab d维乘法表?

时间:2013-11-22 15:52:29

标签: matlab

我是Matlab的新手,我正在尝试解决一个涉及创建d维乘法表的问题,其中每个边从1变为n。问题陈述说输入d = 0应返回数字1,d = 1应返回带有元素1到n的列向量。

理想情况下,我只是沿着d维创建一个1到n的矩阵,然后对每个元素进行迭代设置,它等于索引的乘积,但我不知道如何创建d维矩阵。

任何人都可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

您可以重复使用bsxfun来创建表格。在每次迭代中,向量1,2,...,n被移动到一个新的维度,并乘以前一个结果(单例扩展)。

%// Data
d = 3;
n = 10;

%// Computations
vector = (1:n).'; %// first dimension: column vector
result = 1; %// initialization
for n = 1:d
   result = bsxfun(@times, result, vector); %// new dimension
   vector = shiftdim(vector,-1); %// shift to the next dimension
end