3

这可能很简单,但我想不通......我想创建一个范围矩阵,我可以使用以下循环来做到这一点:

a=[0 10 22 35 42]; % sample initial  ranges
for i=1:length(a)
    b(i,:)= a(i):a(i)+5;
end

 b =
     0     1     2     3     4     5
    10    11    12    13    14    15
    22    23    24    25    26    27
    35    36    37    38    39    40
    42    43    44    45    46    47

它如何被矢量化?

4

2 回答 2

3

以下两项都适用于您的示例:

b = bsxfun(@plus, repmat(a',1,6), 0:5);
b = bsxfun(@plus, a'*ones(1,6), 0:5);

您可以根据输入a和范围长度修改参数。

于 2013-02-26T22:47:57.793 回答
3
a = 0:10:40;

b = bsxfun(@plus,a', 0:5)
b =

 0    1    2    3    4    5
10   11   12   13   14   15
20   21   22   23   24   25
30   31   32   33   34   35
40   41   42   43   44   45
于 2013-02-26T22:50:32.767 回答