在matlab中制作一个Matrix元素等于行号乘以列号

Making a Matrix element equals the row number times the column number in matlab

我想声明一个函数,它将 (n, m) 作为输入,return mt 作为 n×m 矩阵。如果我假设行号 (rn) 和列号 (cn) 我想要mt矩阵的给定元素=行号(rn)*列号(cn)

function  [mt, s] = mtable(n, m)
mt = rand(n, m);
rn = (1:n);
cn = (1:m);
mt(rn, cn) = rn*cn;
s = sum(mt);
end

你可以简单地做

mt = [1:n].'*[1:m]

实现你想要的矩阵。否则,您发布的示例代码中存在一些语法问题。

您可以通过 cn 的简单缩放和 rn 的总和直接计算 s,因此不会像这样被 mt 打扰 -

function s = mtable(n, m)
rn = (1:n);
cn = (1:m);
s = cn*sum(rn)
end

如果你确实也需要mt,你可以使用bsxfun -

mt = bsxfun(@times,rn',cn)