这可能很简单,但我无法弄明白......我想创建一个范围矩阵,我可以使用以下循环来完成:
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
如何进行矢量化?
答案 0 :(得分:3)
以下两种情况都适用于您的示例:
b = bsxfun(@plus, repmat(a',1,6), 0:5);
b = bsxfun(@plus, a'*ones(1,6), 0:5);
您可以根据输入a
和范围长度修改参数。
答案 1 :(得分: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