PDA

查看完整版本 : [MATLAB基础] 求助关于bsxfun函数使用


剪水作花飞
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