我在从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
答案 0 :(得分:2)
您必须在每个函数调用(pkg.methodB()
)中使用包名称作为前缀,或者必须使用pkg
导入import pkg.*
。
可能的实施是:
function methodA ()
pkg.methodB()
end
。
function methodA ()
import pkg.*
methodB()
end