理解语法

时间:2013-03-23 05:51:55

标签: matlab sift

我有这几行难以理解......

oframes1 = do_localmax(  difofg.octave{o}, 0.8*thresh, difofg.smin  ) ; 
oframes = [oframes1 , do_localmax( - difofg.octave{o}, 0.8*thresh, difofg.smin)] ; 

这里,

  1. do_localmax是一个函数
  2. thresh是一个变量
  3. difofg也是一个函数
  4. 我理解第一行调用函数并传递参数,但很难理解第二行以及什么样的语法是difofg.octave {o}

1 个答案:

答案 0 :(得分:1)

句法:

difofg不是函数;它是一个变量,可能是structclass objectdifofg.octavedifofg.smin从该结构/对象中获取名为octavesmin的元素。

difofg.octave显然是cell arraydifofg.octave{o}获取该单元格数组的o元素。

第二行创建一个包含两个元素的数组:第一行是oframes1,第二行是第二次调用do_localmax的结果。也许这个等效的代码可以更清楚地发生了什么:

oframes1 = do_localmax(  difofg.octave{o}, 0.8*thresh, difofg.smin); 
oframes2 = do_localmax( -difofg.octave{o}, 0.8*thresh, difofg.smin);
oframes = [oframes1, oframes2];