0
我是新來的Matlab,我試圖解決一個問題,涉及創建一個d維乘法表,其中每個邊緣從1到n。問題陳述說輸入d = 0應該返回數字1,d = 1應該返回一個列向量,元素爲1到n。Matlab d維乘法表?
理想情況下,我只是沿着d維創建一個1到n的矩陣,然後遍歷每個元素設置它等於索引的乘積,但我不知道如何創建d維矩陣。
任何人都可以幫我解決這個問題嗎?
我是新來的Matlab,我試圖解決一個問題,涉及創建一個d維乘法表,其中每個邊緣從1到n。問題陳述說輸入d = 0應該返回數字1,d = 1應該返回一個列向量,元素爲1到n。Matlab d維乘法表?
理想情況下,我只是沿着d維創建一個1到n的矩陣,然後遍歷每個元素設置它等於索引的乘積,但我不知道如何創建d維矩陣。
任何人都可以幫我解決這個問題嗎?
您可以重複使用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
非常感謝!我不熟悉shiftdim命令。 – user3020151