Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

matlab.io.hdf4.sd.setFillMode

命名空间: matlab.io.hdf4.sd

设置文件的当前填充模式

语法

prevmode = setFillMode(sdID,fillmode)

说明

prevmode = setFillMode(sdID,fillmode) 返回上一个文件填充模式并将其重置为 fillmode。此设置适用于 sdID 标识的文件中包含的所有数据集。

fillmode 的可能值为 'fill''nofill''fill' 是默认模式,指示在创建数据集时将写入填充值。'nofill' 指示不会写入填充值。

在创建固定大小的数据集后,对 sd.writeData 的第一个调用将用默认或用户定义的填充值填充整个数据集(如果 fillmode'fill')。在具有无限维度的数据集中,如果沿无限维度在上一写入操作的最后位置的较远处进行新的写入操作,则这些写入区域之间的数组位置将初始化为用户定义的填充值,或默认填充值(如果尚未指定用户定义的填充值)。

如果确信将在任何读取操作发生之前写入所有数据集值,则无需写入填充值。在本例中,使用 'nofill' 调用 sd.setFillMode 可以提高性能。

此函数对应于 HDF 库 C API 中的 SDsetfillmode 函数。

示例

写入两个部分记录。以 'nofill' 模式写入第一个记录,以 'fill' 模式写入第二个记录。

import matlab.io.hdf4.*
sdID = sd.start('myfile.hdf','create');
sd.setFillMode(sdID,'nofill');
sdsID = sd.create(sdID,'temperature','double',[10 10 0]);
sd.writeData(sdsID,[0 0 0], rand(5,5));
sd.setFillMode(sdID,'fill');
sd.setFillValue(sdsID,-999);
sd.writeData(sdsID,[0 0 1], rand(5,5));
sd.endAccess(sdsID);
sd.close(sdID);