MATLAB代码中,while循环里面的代码是什么意思?能逐句解释一下吗?

如题所述

第1个回答  2015-05-06
while ~done                           % done 为假继续迭代
    g = f>=T;                         % 求 f 中 >= 平均灰度值的逻辑矩阵
    Tn = (mean(f(g))+mean(f(~g)))/2;  % 将 >= 灰度值平均加上 < 灰度值,除2(再平均) 
    done = abs(T-Tn)<0.1;             % 将刚求得的平均值与原平均值相减取绝对值,<0.1 done为真 
    T = Tn;                           % 将新平均值赋予原平均值
end

追问

还有一点不明白,请问g是一个只有0和1的矩阵吗?f(g)又表示什么?

追答

g 是逻辑矩阵,只有 0 和 1,但是其行列位置是和 f 一一对应的
所以 f(g) 就会取出所有 1 对应的灰度值(0 值对应的忽略)

本回答被提问者采纳