我正在尝试生成一个矩阵,其中每个元素都定义为 10 * row_index + column_index。行和列可能波动最大为 9x9 矩阵。例如:
11 12 13 14 15 16
21 22 23 24 25 26
31 32 33 34 35 36
41 42 43 44 45 46
51 52 53 54 55 56
该算法使用 for
循环非常简单,但有人警告我在处理矩阵时除非绝对必要,否则我应该避免使用 for
循环,因为它们是比矢量/矩阵运算慢。
在 Matlab 2012b 中还有哪些其他方法可以生成这样的矩阵?
最佳答案
对于您的特定矩阵,它非常简单:
nRows = 4;
nCols = 5;
out = bsxfun(@plus,10*(1:nRows)',1:nCols)
out =
11 12 13 14 15
21 22 23 24 25
31 32 33 34 35
41 42 43 44 45
关于matlab - 有没有一种方法可以生成一个矩阵,其中每个元素都定义为 10+row_index + column_index 而无需 for 循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14407654/