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 に答える