在matlab包中调用一个方法在同一个包的其他方法中

时间:2015-09-16 15:45:14

标签: matlab

我在从matlab包调用方法时遇到了一些问题,因为该方法正在调用同一个包的另一个方法。在脚本中我通过指定包含该方法的包的名称来调用方法,并且对此方法的调用正常。但是当包内的方法尝试调用相同包的其他方法时,代码崩溃。我的包的结构是这样的:

+ PKG \了methodA

+ PKG \的methodB

var data = new google.visualization.DataTable();
data.addColumn('string', 'Sample');
data.addColumn('number', 'Elevation');
for (var i = 0; i < results.length; i++) {
  if(i%10==0)
  {
      data.addRow(['' + i / 10 + '', elevations[i].elevation]);
  }
  else
  {
      data.addRow([null, elevations[i].elevation]);
  }
}
document.getElementById('chart_div').style.display = 'block';
chart.draw(data, {
  height: 250,
  colors: ['#F00'],
  legend: 'none',
  titleY: 'Elevation (m)',
  titleX: 'Distance',
  hAxis: {
      slantedTextAngle: 90,
      showTextEvery: 1,
  }
});

在methodA中,当我调用methodB时,我没有在方法名之前指定包名。我想检查这个实现是否不正确或者我遗漏了什么。

这是调用methodB的正确方法:

function methodA ()
    methodB()
end

function methodB ()
    disp ('Hello')
end

错误讯息:

function methodA ()
   pkg.methodB()
end

1 个答案:

答案 0 :(得分:2)

您必须在每个函数调用(pkg.methodB())中使用包名称作为前缀,或者必须使用pkg导入import pkg.*

可能的实施是:

function methodA ()
pkg.methodB()
end

function methodA ()
import pkg.*
methodB()
end