主题: [MATLAB基础] 求助关于bsxfun函数使用
查看单个帖子
旧 2017-05-19, 17:25   #1
剪水作花飞
初级会员
 
注册日期: 2010-12-14
帖子: 1
声望力: 0
剪水作花飞 正向着好的方向发展
默认 求助关于bsxfun函数使用

请教各位大牛,我想用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
剪水作花飞 当前离线   回复时引用此帖