이번역페이지는최신내용을담고있지않습니다。최신내용을문으로보려면여기를클릭하십시오。
fileDatastore
사용자지정파일리더를사용하는데이터저장소
설명
메모리에맞지않을수있는대규모사용자지정형식파일모음을관리해야하거나대용량사용자지정형식파일이메모리에맞지않을때FileDatastore
객체를사용합니다。fileDatastore
함수를사용하여FileDatastore
객체를만들고그속성을지정한다음,객체함수를사용하여데이터를가져오고처리할수있습니다。
생성
설명
입력marketing수
位置
- - - - - -데이터저장소에포함할파일또는폴더
文件集
객체|파일 경로|DsFileSet
객체
데이터저장소에포함할파일또는폴더로,文件集
객체,파일경로또는DsFileSet
객체로지정됩니다。
文件集
객체-位置
을文件集
객체로지정할수있습니다。위치를文件集
객체로지정하면경로나DsFileSet
객체로지정하는경우보다데이터저장소생성시간이빨라집니다。자세한내용은matlab.io.datastore.FileSet
항목을참조하십시오。파일경로——문자형벡터나字符串형스칼라로하나의파일경로를지정할수있습니다。여러개의파일경로는문자형벡터로구성된셀형배열또는字符串형배열로지정하면됩니다。
DsFileSet
객체-DsFileSet
객체를지정할수있습니다。자세한내용은matlab.io.datastore.DsFileSet
을참조하십시오。
파일이나폴더는로컬또는원격이될수있습니다。
로컬파일또는폴더-파일또는폴더의로컬경로를지정합니다。파일이현재폴더에없는경우전체경로나상대경로를지정합니다。지정된폴더의하위폴더내에있는파일은데이터저장소에자동으로포함되지않습니다。로컬경로를지정할때에는와일드카드문자(*)를사용할수있습니다。이문자는모든일치하는파일또는일치하는폴더의모든파일을데이터저장소에포함하도록지정합니다。
원격파일또는폴더-
hdfs: / / /
형식의URL(统一资源定位器)을사용하여원격파일또는폴더의전체경로로지정합니다。자세한내용은원격데이터로작업하기항목을참조하십시오。path_to_file
폴더를지정하면데이터저장소는지원되는파일형식의파일만포함하며그외다른형식의파일은무시합니다。데이터저장소에포함할파일확장자목록을사용자지정하려면FileExtensions
속성을참조하십시오。
예:“file1.ext”
예:“. . / dir /数据/ file1.ext”
예:{“C: \ dir \ data \ file1.exts”,“C: \ dir \ data \ file2.extx”}
예:“C: \ dir \ data \ * . ext "
@fcn
- - - - - -파일데이터를읽는함수
함수 핸들
파일데이터를읽는함수로,함수핸들로지정됩니다。
함수 핸들@fcn
으로@ @현되는함수의시그니처는지정된ReadMode
의값에따라달라집니다。파일데이터를읽는함수는다음시그니처중하나에해당해야합니다。
|
|
---|---|
“文件” (디폴트값) |
이함수는다음과같은시그니처를가져야합니다。 函数data = MyReadFcn(文件名)…结束
|
“partialfile” |
이함수는다음과같은시그니처를가져야합니다。 function [data,userdata,done] = MyReadFcn(filename,userdata)…结束
|
“字节” |
이함수는다음과같은시그니처를가져야합니다。 函数data = MyReadFcn(文件名,偏移量,大小)…结束
|
@fcn
에지정된값은ReadFcn속성의값을설정합니다。
예:@customreader
데이터형:function_handle
선택적으로名称,值
수가쉼로구분되어지정됩니다。여기서的名字
은수이름이고价值
는대응값입니다。的名字
은따옴。Name1, Value1,…,的家
과같이여러개의이름-값쌍의通讯录수를어떤순서로든지정할수있습니다。
예:fds = fileDatastore(“C: \ dir \数据”,“FileExtensions”{“开头”、“.extx”})
IncludeSubfolders
- - - - - -하위폴더포함플래그
真正的
또는假
|0또는1
하위폴더포함플래그로,“IncludeSubfolders”
와 함께真正的
,假
, 0, 1중하나가쉼。각폴더내에있는모든파일과하위폴더를포함하려면真正的
를지정하고,각폴더내에있는파일만포함하려면假
를지정하십시오。
“IncludeSubfolders”
를지정하지않은경우디폴트값은假
입니다。
예:“IncludeSubfolders”,真的
데이터형:逻辑
|双
FileExtensions
- - - - - -사용자지정형식파일확장자
문자형벡터|문자형벡터로구성된셀형배열|字符串형스칼라|字符串형배열
사용자지정형식의파일확장자로,“FileExtensions”
와함께문자형벡터,문자형벡터로구성된셀형배열,字符串형스칼라또는字符串형배열이쉼표로구분되어지정됩니다。
파일확장자를지정하면fileDatastore
함수는지정된확장자를갖는파일에대해서만数据存储객체를만듭니다。“FileExtensions”
를빈문자형벡터''
로지정하여확장자가없는파일에대한데이터저장소를만들수도있습니다。“FileExtensions”
를지정하지않으면fileDatastore
가폴더내모든파일을자동으로포함합니다。
예:“FileExtensions”、“
예:“FileExtensions”、“开头”
예:“FileExtensions”(“开头”、“.extx”)
데이터형:字符
|细胞
|字符串
PreviewFcn
- - - - - -입력데이터를미리보기하는함수
@ReadFcn
(디폴트값)|함수 핸들
입력데이터를미리보기하는함수로,함수핸들로지정됩니다。
미리보기함수를지정하지않을경우FileDatastore
는@ReadFcn
에지정된값을디폴트미리보기함수로사용합니다。또는데이터에적용할사용자지정미리보기함수를지정할수도있습니다。
@ReadFcn
(디폴트값)-ReadFcn
을사용하여FileDatastore
데이터를샘플링합니다。이옵션을사용하면高
생성이느려질수있습니다。函数处理
- - - - - -FileDatastore
및高
생성에사용자지정미리보기함수를사용하여입력데이터를샘플링합니다。미리보기와高생성을위해입력데이터에서필요한최소한의부분만을읽는함수를제공하려면PreviewFcn
을사용합니다。
PreviewFcn
에의해지정된함수는ReadFcn
이반환하는값의데이터형과동일한데이터형으로값을반환해야합니다。
데이터형:function_handle
ReadMode
- - - - - -파일에서읽을부분
“文件”
(디폴트값)|“partialfile”
|“字节”
파일에서읽을부분으로,“文件”
,“partialfile”
또는“字节”
로지정됩니다。
“文件” (디폴트값) |
파일데이터저장소는사용자지정된읽기함수에따라 |
“partialfile” |
파일데이터저장소는사용자지정된읽기함수에따라
|
“字节” |
파일데이터저장소는사용자지정된읽기함수에따라읽기함수가호출될때마다 |
FileDatastore
객체에子集
및洗牌
함수를사용하려면“ReadMode”
를“文件”
로설정해야합니다。
데이터형:字符
|字符串
BlockSize
- - - - - -읽을바이트수
正整数
매读
작업시읽을바이트수로,양의정수로지정됩니다。
한파일의여러블록을복수의병렬matlab®워커에분산하려면BlockSize
를131072
바이트(128
킬로바이트)보다큰양의정수로지정하십시오。
BlockSize
의값을지정하거나변경하려면먼저ReadMode
를“字节”
로설정해야합니다。FileDatastore
는ReadMode
에지정된값에따라BlockSize
의디폴트값을설정합니다。
ReadMode
가“文件”
또는“partialfile”
이면FileDatastore
는BlockSize
의디폴트값을正
로설정합니다。ReadMode
가“字节”
이면FileDatastore
는BlockSize
의디폴트값을128
메가바이트로설정합니다。
AlternateFileSystemRoots
- - - - - -파일시스템루트경로의대체경로
字符串형벡터|셀형 배열
파일시스템루트경로의대체경로로,“AlternateFileSystemRoots”
와함께字符串형벡터또는셀형배열로구성된이름-값v3수로지정됩니다。로컬컴퓨터에데이터저장소를만들지만다른컴퓨터(다른운영체제의컴퓨터일수있음)의데이터에액세스하고이를처리해야하는경우“AlternateFileSystemRoots”
를사용합니다。또한并行计算工具箱™와MATLAB并行服务器를사용하여데이터를처리하고,처리한데이터를다른플랫폼클라우드또는다른클러스터컴퓨터에있는데이터의복사본과함께로컬컴퓨터에저장할경우“AlternateFileSystemRoots”
를사용하여루트경로를연결해야합니다。
실질적으로서로동일한루트경로들의집합을연결하려면
“AlternateFileSystemRoots”
를字符串형벡터로지정하십시오。예를들면다음과같습니다。[" Z: \数据集”、“/ mynetwork /数据集”)
데이터저장소에대한실질적으로동일한여러루트경로의집합을여러개연결하려면
“AlternateFileSystemRoots”
를여러행이포함된셀형배열로지정하십시오。여기서각행은실질적으로동일한루트경로들의집합하나를나타냅니다。셀형배열의각행을字符串형벡터또는문자형벡터로구성된셀형배열로지정합니다。예를들면다음과같습니다。“AlternateFileSystemRoots”
를字符串형벡터로구성된셀형배열로지정합니다。{[Z: \“数据集”、“/ mynetwork /数据集”);…[" Y: \数据集”、“/ mynetwork2 /数据集”、“年代:\数据集”)}
또는
“AlternateFileSystemRoots”
를문자형벡터로구성된셀형배열로지정합니다。{{“Z: \数据集”、“mynetwork /数据集”},…{“Y: \数据集”,“mynetwork2 /数据集”,年代:\数据集的}}
“AlternateFileSystemRoots”
의값은다음조건을충족해야합니다。
하나이상의행을포함합니다。여기서각행은실질적으로동일한여러루트경로를지정합니다。
각행은여러개의루트경로를지정하고,각루트경로는적어도두개의문자를포함해야합니다。
루트경로는고유하며서로의하위폴더가아닙니다。
파일의위치를가리키는적어도하나의루트경로항목을포함합니다。
자세한내용은为不同机器或集群上的处理设置数据存储항목을참조하십시오。
예:[" Z: \数据集”、“/ mynetwork /数据集”)
데이터형:字符串
|细胞
속성
FileDatastore
속성은FileDatastore
객체와연결된파일을설명합니다。文件
속성을제외하고,이름-값쌍의수를사용하여FileDatastore
속성의값을지정할수있습니다。객체를만든후속성을보거나수정하려면점@ @기법을사용하십시오。
文件
- - - - - -데이터저장소에포함된파일
문자형벡터|문자형벡터로구성된셀형배열|字符串형스칼라|字符串형배열
데이터저장소에포함된파일로,문자형벡터,문자형벡터로구성된셀형배열,字符串형스칼라또는字符串형배열로확인됩니다。여기서각문자형벡터또는字符串형은파일에대한전체경로입니다。데이터저장소를만들때fileDatastore
함수와数据存储
함수에지정되는位置
수에따라文件
가정의됩니다。
예:{“C: \ dir \ data \ file1.ext”;“C: \ dir \ data \ file2.ext”}
예:“hdfs: / / /数据/ * .mat”
데이터형:字符
|细胞
|字符串
文件夹
- - - - - -데이터저장소를생성하는데사용된폴더
문자형벡터로구성된셀형배열
이속성은읽기전용입니다。
데이터저장소를생성하는데사용된폴더로,문자형벡터로구성된셀형배열로반환됩니다。셀형배열은열벡터로방향이설정됩니다。각문자형벡터는데이터파일을포함하는폴더의경로입니다。데이터저장소를만들때fileDatastore
함수와数据存储
함수에지정되는位置
수에따라文件夹
가정의됩니다。
FileDatastore
객체의文件
속성을수정하면文件夹
속성이재설정됩니다。
데이터형:细胞
ReadFcn
- - - - - -파일데이터를읽는함수
함수 핸들
UniformRead
- - - - - -세로로결합가능한지여부에대한플래그
假
(디폴트값)|真正的
이속성은읽기전용입니다。
세로로결합가능한지여부에대한플래그로,논리형真正的
또는假
로지정됩니다。FileDatastore
객체를처음만들때이속성의값을지정합니다。
真正的 |
|
假 (디폴트값) |
|
예:fds = fileDatastore(location,"ReadFcn",@load,"UniformRead",true)
데이터형:逻辑
|双
金宝appSupportedOutputFormats
- - - - - -쓰기가지원되는형식목록
행 벡터
이속성은읽기전용입니다。
쓰기가지원되는형식목록으로,字符串형으로구성된행벡터로반환됩니다。이 속성은writeall
을사용하여데이터저장소에서출력파일을쓸때가능한출력형식을지정합니다。
데이터형:字符串
객체 함수
hasdata |
데이터를읽을수있는지확 |
numpartitions |
데이터저장소파티션개수 |
分区 |
데이터저장소파티셔닝 |
预览 |
데이터저장소에있는데이터의서브셋미리보기 |
读 |
데이터저장소의데이터읽어들이기 |
readall |
데이터저장소의모든데이터읽기 |
writeall |
将数据存储写入文件 |
重置 |
데이터저장소를초기상태로재설정 |
变换 |
变换数据存储 |
结合 |
여러데이터저장소의데이터결합 |
isPartitionable |
确定数据存储是否可分区 |
isShuffleable |
确定数据存储是否可洗牌 |
洗牌 |
데이터저장소의모든데이터읽기섞기 |
子集 |
创建数据存储或文件集的子集 |
예제
FileDatastore객체만들기
FileSet객체또는파일경로를사용하여fileDatastore객체를만듭니다。
FileSet객체를만듭니다。fileDatastore객체를만듭니다。
fs = matlab.io.datastore.FileSet(“airlinesmall.parquet”);fds = fileDatastore(fs,“ReadFcn”@load)
fds =FileDatastore属性:文件:{`…\matlab\toolbox\matlab\demos\airlinesmall。parquet'}文件夹:{'…\matlab\toolbox\matlab\demos `} UniformRead: 0 ReadMode: ` file ` BlockSize: Inf PreviewFcn: @loa金宝appd SupportedOutputFormats: ["txt" "csv" "xlsx" "xls" "parquet" "parq" "png" "jpg" "jpeg" "tif" "tiff" "wav" "flac" "ogg" "mp4" "m4a"] ReadFcn: @load AlternateFileSystemRoots: {}
또는파일경로를사용하여fileDatastore객체를만들수도있습니다。
fds = fileDatastore(“airlinesmall.parquet”,“ReadFcn”, @load);
Mat파일의데이터저장소읽기
MATLAB®演示
폴더내모든.mat
파일을포함하는데이터저장소를만들어,负载
함수를통해파일데이터를읽도록지정합니다。
fds = fileDatastore(fullfile(matlabroot,“工具箱”,“matlab”,“演示”),“ReadFcn”@load,“FileExtensions”,“.mat”)
fds =FileDatastore属性:文件:{'…\matlab\toolbox\matlab\demos\accidents.mat';’……\ matlab \ matlab工具箱\ \ demo \ airfoil.mat”;“……\ matlab \ matlab工具箱\ \ demo \ airlineResults。垫”……和38个}文件夹:{'…\matlab\toolbox\matlab\demos `} UniformRead: 0 ReadMode: ` file ` BlockSize: Inf PreviewFcn: @loa金宝appd SupportedOutputFormats: ["txt" "csv" "xlsx" "xls" "parquet" "parq" "png" "jpg" "jpeg" "tif" "tiff" "wav" "flac" "ogg" "mp4" "m4a"] ReadFcn: @load AlternateFileSystemRoots: {}
데이터저장소의첫번째파일을읽은후두번째파일을읽습니다。
Data1 = read(fds);Data2 = read(fds);
데이터저장소의모든파일을동시에읽습니다。
readall (fds);
데이터와카운터我
를유지할셀형배열을초기화합니다。
dataarray = cell(数字(fds.Files), 1);I = 1;
데이터저장소를첫번째파일로재설정하고남아있는데이터가없을때까지한번에하나씩파일을읽습니다。배열dataarray
에데이터를할당합니다。
重置(fds);而Hasdata (fds) dataarray{i} = read(fds);I = I +1;结束
대용량mat파일에서배열을한번에하나씩읽기
메모리에맞지않을수있는대용량垫파일에서읽기위해데이터저장소를만들수있습니다。대용량垫파일의각배열이사용가능한메모리에맞는다고가정하고,다음과같은3단계를통해데이터를읽고처리하기위해데이터저장소를만듭니다。
Mat파일에서배열을한번에하나씩읽는사용자지정읽기함수를작성합니다。
부분읽기를수행하도록데이터저장소함수의파라미터를설정합니다。
Mat파일에서배열을한번에하나씩읽습니다。
Mat파일에서배열을한번에하나씩읽는사용자지정함수를작성합니다。이 함수는FileDatastore
의@ReadFcn
수에설명되어있는것처럼시그니처를가져야합니다。이파일을작업폴더나matlab경로에있는폴더에저장합니다。이예제에서는다음과같은사용자지정함수load_variable
을사용합니다。
类型load_variable.m
function [data,variables,done] = load_variable(filename,variables) %如果变量列表为空,%从文件中创建变量列表If isempty(variables)变量= who('-file', filename);从变量列表中加载变量data = Load(文件名,变量{1});从变量列表中删除新读取的变量(1)= [];如果该文件已读取,则转移到下一个文件。Done = isempty(变量);结束
accidents.mat
를포함하는FileDatastore
를생성하고설정합니다。“partialfile”
을읽기모드로사용하고load_variable
을사용자지정읽기함수로사용하도록데이터저장소파라미터를지정합니다。
fds = fileDatastore(“accidents.mat”,“ReadMode”,“partialfile”,“ReadFcn”, @load_variable);
데이터저장소를사용하여파일에서처음3개의변수를읽어들입니다。파일accidents.mat
는9개의변수를포함하고있으며读
가한번호출될때마다한개의변수가반환됩니다。따라서처음3개의변수를가져오려면읽기함수를세번호출합니다。
Data = read(fds)
data =带字段的结构:数据来源:{3x1 cell}
Data = read(fds)
data =带字段的结构:hwycols: 17
Data = read(fds)
data =带字段的结构:Hwydata: [51x17 double]
샘플 파일accidents.mat
는작고메모리에맞지만,메모리에맞지않는대용량垫파일에대해서도비슷한결과를예상할수있습니다。
팁
FileDatastore
객체에子集
및洗牌
함수를사용하려면“ReadMode”
를“文件”
로설정해야합니다。
버전 내역
Matlab명령
다음matlab명령에해당하는링크를클릭했습니다。
명령을실행하려면matlab명령창에입력하십시오。웹브라우저는matlab명령을지원하지않습니다。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。