剪水作花飞
2017-05-19, 17:25
请教各位大牛,我想用bsxfun代替内层for循环,代码如下:
sequence = [1,2,3,4,5];
avg = @(i, j) mean(sequence(i:j));
for i = 1:5
for j = i+1:5
A(i,j) = avg(i,j);
end
B(i, i+1:5) = bsxfun(avg, i, i+1:5);
end
运行结果如下,对于bsxfun的运行结果很不理解,求助大牛帮忙解释一下bsxfun替代for循环不成功呀?
A =
0 1.5000 2.0000 2.5000 3.0000
0 0 2.5000 3.0000 3.5000
0 0 0 3.5000 4.0000
0 0 0 0 4.5000
B =
0 1.5000 1.5000 1.5000 1.5000
0 0 2.5000 2.5000 2.5000
0 0 0 3.5000 3.5000
0 0 0 0 4.5000
0 0 0 0 0
sequence = [1,2,3,4,5];
avg = @(i, j) mean(sequence(i:j));
for i = 1:5
for j = i+1:5
A(i,j) = avg(i,j);
end
B(i, i+1:5) = bsxfun(avg, i, i+1:5);
end
运行结果如下,对于bsxfun的运行结果很不理解,求助大牛帮忙解释一下bsxfun替代for循环不成功呀?
A =
0 1.5000 2.0000 2.5000 3.0000
0 0 2.5000 3.0000 3.5000
0 0 0 3.5000 4.0000
0 0 0 0 4.5000
B =
0 1.5000 1.5000 1.5000 1.5000
0 0 2.5000 2.5000 2.5000
0 0 0 3.5000 3.5000
0 0 0 0 4.5000
0 0 0 0 0