目录
import函数是将包、类或函数添加到当前导入列表中。
语法
import PackageName.ClassName
import PackageName.FunctionName
import PackageName.ClassName.staticMethodName
import PackageName.*
import
L = import
说明
import PackageName.ClassName 将类名称添加到当前导入列表。要引用一个类而不指定整个包名称,请在您的代码中使用 import 函数。
导入列表作用域的定义如下:
-
函数或脚本,包括嵌套函数和局部函数 - 作用域是函数。
脚本的作用域是脚本自身。脚本中的导入项仅在脚本自身中可用,在调用脚本的作用域中不可用。例如,在命令提示符下执行包含导入项的脚本不会使导入项在命令行窗口中可用。
函数的导入列表在调用该函数时会持久存在,只有在清除该函数时才会被清除。有关详细信息,请参阅 clear 函数。不要在函数或脚本内调用 clear import。
-
基础工作区 - 作用域是在命令提示符下执行的代码。要清除基础导入列表,请在 MATLAB® 命令提示符下键入 clear import。
import PackageName.FunctionName 添加指定的基于包的函数。使用此语法可缩短包中特定函数的名称,而不必在包中导入每个函数(这种导入操作可能导致意外的名称冲突)。
import PackageName.ClassName.staticMethodName 添加指定的静态方法。使用此语法可缩短特定静态方法的名称。
import PackageName.* 添加指定的包名称。PackageName 必须后跟 .*。
避免使用此语法,因为导入包会将一组未指定的名称带入局部作用域中,从而可能与 MATLAB 工作区中的名称发生冲突。此语法的一种可能的用法是导入部分包名称。然后,在调用函数时,可以使用较短的包名称,这样就不会与简单函数名称发生冲突。例如,matlab.io.hdf4.sd 包有 close 函数,该函数可能与 MATLAB close 函数发生冲突。
import 显示作用域中的当前导入列表。
L = import 返回当前导入列表。
示例
缩短对 Java 类方法的调用
import java.util.Currency java.lang.String
创建一个 java.lang.String 对象。无需键入包名称 java.lang。
s = String('hello')
s =
hello
列出 Currency 类方法,无需键入包名称。
methods Currency
Methods for class Currency:
equals getDisplayName notify
getAvailableCurrencies getInstance notifyAll
getClass getNumericCode toString
getCurrencyCode getSymbol wait
getDefaultFractionDigits hashCode
缩短 HDF4 科学数据集包名称
在导入列表中使用部分包名称,以简化对 matlab.io.hdf4.sd 包函数的调用,并避免与 MATLAB close 函数发生冲突。
import matlab.io.hdf4.*
通过使用缩短的包名称 sd,显示您的系统上示例文件 sd.hdf 的完整路径。
sdID = sd.start('sd.hdf');
filename = sd.getFilename(sdID)
filename =
C:\Program Files\MATLAB\R2015a\toolbox\matlab\imagesci\sd.hdf
使用 sd 包名称调用 close 函数。
sd.close(sdID)
在导入部分包名称时,不会与 MATLAB close 函数发生名称冲突。
which close
C:\Program Files\MATLAB\R2015a\toolbox\matlab\graphics\close.p
如果使用 matlab.io.hdf4.sd.* 语法导入完整包名称,则当调用 close 时,MATLAB 始终选择包函数。无法使用 close 删除图窗。
导入单个包函数
导入函数 myfunc 中的 matlab.io.hdf4.sd 包函数 readChunk。可以使用简单的名称 readChunk 调用该函数,但此调用方式仅在 myfunc 的作用域内有效。
function data = myfunc(ID,n,m)
import matlab.io.hdf4.sd.readChunk
data = readChunk(ID,[n m]);
end
导入单个静态方法
在函数 myFunc 中导入 meta.class.fromName 静态方法。可以使用简单的名称 fromName 调用该静态方法,但此调用方式仅在 myFunc 的作用域内有效。
function metaClsObj = myFunc(ClassName)
import meta.class.fromName
metaClsObj = fromName(ClassName);
end
在脚本和函数中导入包
打开 sd.hdf 示例文件并访问 temperature 数据集。
import matlab.io.hdf4.*
sdID = sd.start('sd.hdf');
idx = sd.nameToIndex(sdID,'temperature');
sdsID = sd.select(sdID,idx);
调用上面示例中的 myfunc 函数以读取数据。myfunc 必须具有自己的 import 语句以便使用短包名称。
dataChunk = myfunc(sdsID,0,1);
关闭文件。
sd.endAccess(sdsID)
sd.close(sdID)
显示系统的当前导入列表
import
ans =
'java.util.Currency'
'java.lang.String'
'matlab.io.hdf4.*'
'matlab.io.hdf4.sd.readChunk'
局限性
-
import 无法加载 MATLAB Compiler SDK™ 产品创建的 Java® JAR 包。
-
请勿在函数内的条件语句中使用 import。MATLAB 会在计算条件语句中的变量之前预处理 import 语句。