文档帮助中心文档
用于集合信号的数据存储
使用一个SignalDataStore.对象来管理内存中数据或信号文件的集合,其中每个单独的文件都适合内存,但整个集合不一定适合。
SignalDataStore.
sds = signalDatastore(数据)
sds = signalDatastore(位置)
sds = signalDatastore (___、名称、值)
sds= signaldataStore(数据)创建具有包含内存输入信号的信号数据存储数据.
sds= signaldataStore(数据)
sds
数据
例子
sds= signaldataStore(位置)中的mat文件集合创建信号数据存储位置.
sds= signaldataStore(位置)
位置
sds= signaldataStore(___,名称,值)使用一个或多个名称值对参数指定其他属性。
sds= signaldataStore(___,名称,值)
名称,值
全部展开
内存中的输入数据,指定为向量、矩阵、时间表或单元格数组。的每个元素数据是数据存储在每次调用时输出的成员吗读.
读
例子:{randn (100 1);randn (120 3);randn (135 2);randn (100 1)}
{randn (100 1);randn (120 3);randn (135 2);randn (100 1)}
DsFileSet
数据存储中包含的文件或文件夹,指定为路径或DsFileSet对象。
path—将路径指定为字符向量、字符向量单元格数组、字符串标量或字符串数组,其中包含本地或远程文件或文件夹的位置。
本地文件或文件夹-指定位置作为文件或文件夹的本地路径。如果文件不在当前文件夹中,则本地路径必须指定完整路径或相对路径。指定文件夹的子文件夹中的文件不会自动包含在数据存储中。指定本地路径时可以使用通配符(*)。此字符指定数据存储包含所有匹配的文件或匹配文件夹中的所有文件。
远程文件或文件夹-指定位置将文件或文件夹的完整路径作为表单的统一资源定位符(URL)hdfs: / / / path_to_file.有关更多信息,请参阅使用远程数据.
hdfs: / / / path_to_file
DsFileSetobject—你也可以指定位置作为一个DsFileSet对象。有关更多信息,请参阅matlab.io.datastore.DsFileSet.
matlab.io.datastore.DsFileSet
当位置表示文件夹时,该数据存储只包含支持的文件格式,而忽略任何其他格式。金宝app要指定要包含在数据存储中的文件扩展名的自定义列表,请参阅FileExtensions财产。
FileExtensions
例子:'whale.mat'
'whale.mat'
例子:'../dir/data/signal.mat'
'../dir/data/signal.mat'
数据类型:字符|细绳|细胞
字符
细绳
细胞
指定可选的逗号分隔的对名称,值参数。名称参数名和价值是相应的价值。名称必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家.
名称
价值
Name1, Value1,…,的家
SDS = SignalDataStore('c:\ dir \ signaldata','fileextensions','。csv')
“IncludeSubfolders”
假
0
真的
1
子文件夹包含标志,指定为真的要么假.指定真的将所有文件和子文件夹包含在每个文件夹或假仅包含每个文件夹中的文件。
例子:“IncludeSubfolders”,真的
“IncludeSubfolders”,真的
数据类型:逻辑|双
逻辑
双
“FileExtensions”
信号文件扩展名,指定为字符串标量、字符串数组、字符向量或字符向量的单元数组。
如果没有指定读函数,“FileExtensions”只能设置为。垫读取mat文件,或. csv读取CSV文件。如果“FileExtensions”省略时,默认为。垫如果指定位置中存在MAT文件,否则“FileExtensions”默认为. csv如果在指定的位置有CSV文件。
。垫
. csv
如果没有mat -file或CSV文件,SignalDataStore.使用默认值排除错误读函数。指定一个自定义读使用readfcn.函数读取任何其他类型的文件。
readfcn.
如果不指定文件扩展名,则SignalDataStore.需要解析文件来决定要读取的默认扩展名。指定扩展以避免解析时间。
例子:' FileExtensions ', ' . csv”
' FileExtensions ', ' . csv”
数据类型:细绳|字符|细胞
除了这些名称-值参数外,还可以将该页面上的任何属性指定为名称-值对,除了文件财产。
文件
成员
成员名称,指定为单元格数组。属性的长度应该等于数据单元阵列。此属性仅在数据存储包含内存中的数据时应用。
MemberNames
[“会员1”...“会员”]
信号成员数据,指定为字符串标量或字符串数组。属性的长度应该等于数据单元阵列。此属性仅在数据存储包含内存中的数据时应用。
数据存储中包含的文件,指定为字符串或字符向量的单元格数组。单元格数组中的每个字符向量表示文件的完整路径。的位置争论在SignalDataStore.定义文件创建数据存储时。此属性仅在数据存储包含文件数据时应用。
读取数据的函数,指定为函数句柄。该函数必须接受一个文件名作为输入,然后输出相应的数据。例如,如果customreader是读取数据的指定函数,则它必须具有以下模板之一:
customreader
函数data = customReader(文件名)......结束
函数[数据,信息] = customReader(文件名)......结束
信息
文件名
例子:@customreader
@customreader
数据类型:function_handle
function_handle
AlternateFileSystemRoots
备用文件系统根路径,指定为逗号分隔的对“AlternateFileSystemRoots”字符串向量或单元格数组。使用“AlternateFileSystemRoots”在本地计算机上创建数据存储,但需要访问和处理另一台计算机上的数据(可能是不同的操作系统)。此外,当使用并行计算工具箱™和该数据处理数据时MATLAB®并行服务器™,并且数据存储在本地机器上,在不同的平台云或集群机器上可以使用数据的副本“AlternateFileSystemRoots”关联根路径。
“AlternateFileSystemRoots”
若要将一组相互等效的根路径关联起来,请指定“AlternateFileSystemRoots”作为一个字符串向量。例如,
[" Z: \数据集”、“/ mynetwork /数据集”)
若要关联与该数据存储相同的多组根路径,请指定“AlternateFileSystemRoots”作为包含多行的单元格数组,其中每一行表示一组等价的根路径。将单元格数组中的每一行指定为字符串向量或字符向量的单元格数组。例如:
指定“AlternateFileSystemRoots”作为字符串向量的单元格数组。
{[“z:\ datasets”,“/ mynetwork / datasets”]; ... [y:\ datasets“,”/ mynetwork2 / datasets“,”s:\ datasets“]}
另外,指定“AlternateFileSystemRoots”作为字符向量的单元阵列的单元阵列。
{{“Z: \数据集”、“mynetwork /数据集”},…{“Y: \数据集”,“mynetwork2 /数据集”,年代:\数据集的}}
的价值“AlternateFileSystemRoots”必须满足以下条件:
包含一个或多个行,其中每一行指定一组等价的根路径。
每行指定多个根路径,且每个根路径至少包含两个字符。
根路径是唯一的,并且不是彼此的子文件夹。
包含至少一个指向文件位置的根路径条目。
有关更多信息,请参阅设置数据存储,以便在不同的机器或集群上进行处理.
例子:[" Z: \数据集”、“/ mynetwork /数据集”)
数据类型:细绳|细胞
SignalVariableNames
信号文件中变量的名称,指定为具有唯一名称的字符串标量或向量。当您的文件包含多个变量,并且您希望指定保存要读取的信号数据的变量名时,请使用此属性。
当属性值是字符串标量时,SignalDataStore.返回指定变量中包含的数据。
当属性值是字符串向量时,SignalDataStore.返回包含指定变量中的数据的单元格数组。在这种情况下,您可以使用ReadOutputOrientation属性指定输出单元数组的方向作为列或行。
ReadOutputOrientation
如果未指定此属性,SignalDataStore.在每个文件的变量列表中读取第一个变量。
请注意
要确定文件中第一个变量的名称,SignalDataStore.按照以下步骤操作:
mat文件:
s =负载(文件名);varNames =字段名(s);firstVar = s。(varNames {1});
CSV文件:
选择= detectImportOptions(文件名,“PreserveVariableNames”,真正的);varNames = opts.VariableNames;字符串(varNames firstVar = {1});
此属性仅适用于数据存储包含文件数据且使用默认读函数的情况。
'柱子'
“行”
输出信号数据单元阵列方向,指定为'柱子'要么“行”.此属性指定如何在呼叫后定位输出信号数据单元数组读函数的时候SignalVariableNames包含多个信号名称。ReadOutputOrientation当SignalVariableNames只包含一个元素,如果不适用SignalVariableNames未指定。
在里面从信号数据存储中的文件中读取多个变量的例子,数据有默认的输出方向,是一个2乘1的列数组:
{1×4941双倍} {1×4941双倍}
SampleRateVariableName
保存采样率的变量的名称,指定为字符串标量。此属性仅在数据存储包含文件数据时应用。
sampletimevariablename.
保持样本时间值的变量的名称,指定为字符串标量。此属性仅在数据存储包含文件数据时应用。
TimeValuesVariableName
保存时间值向量的变量的名称,指定为字符串标量。此属性仅在数据存储包含文件数据时应用。
“SampleRateVariableName”,“SampleTimeVariableName”, 和“TimeValuesVariableName”是相互排斥的。当文件包含包含信号数据的时间信息的变量时,请使用这些属性。如果不指定,SignalDataStore.假设信号数据没有时间信息。如果自定义。这些属性无效读指定的函数。
“SampleRateVariableName”
“SampleTimeVariableName”
“TimeValuesVariableName”
采样率
采样率值,指定为正实标量或向量。
设置的值采样率中的所有信号指定相同的采样率SignalDataStore..
设置的值采样率中的每个信号指定不同的采样率SignalDataStore..
的元素数必须等于向量中的元素数SignalDataStore..
SampleTime
持续时间
采样时间值,指定为一个正标量,一个向量,a持续时间标量或一个持续时间向量。
设置的值SampleTime向标量指定所有信号的相同采样时间SignalDataStore..
设置的值SampleTime中的每个信号指定不同的采样时间SignalDataStore..
时间价值
时间值,指定为向量,a持续时间向量、矩阵或单元格数组。
集时间价值转换为数字或持续时间中的所有信号指定相同的时间值SignalDataStore..向量的长度必须与集合中所有信号的长度相同。
集时间价值转换为数字或持续时间矩阵或单元阵列,以指定SignalDataStore.具有具有相同时间值的信号,但不同信号的时间值不同。
如果时间价值是一个矩阵,那么列数等于矩阵的成员数SignalDataStore..数据存储中的所有信号必须具有等于矩阵的行数。
如果时间价值是单元格数组,那么向量的数量等于SignalDataStore..成员中的所有信号的长度必须等于单元格数组中相应向量的元素数。
ReadSize
返回的信号文件的最大数量读,指定为正实标量。如果你设置ReadSize财产n,这样n> 1,每次叫做读函数,函数如下:
第一个变量的第一个变量n文件,如果sds包含文件数据。
第一个n成员,如果sds包含内存中的数据。
的输出读单元阵列的信号数据是什么时候ReadSize> 1。
readall
writeall
预习
洗牌
子集
划分
numpartitions.
重置
进步
hasdata
转变
结合
是可分派的
isShuffleable
是可分派的和isShuffleable返回真的默认情况下SignalDataStore..您可以测试是否输出结合和转变使用这两个函数是可分割的或可洗牌的。
全部折叠
创建一个信号数据存储来遍历内存中信号数据单元数组的元素。该数据由一个正弦调制线性啁啾、一个凹二次啁啾和一个电压控制振荡器组成。信号以3000hz采样。
fs = 3000;t = 0:1 / fs: 3 - 1 / f;data ={唧唧喳喳(300 t, t(结束),800年)。* exp (2 j *π* 10 * cos(2 *π* 2 * t));......2 *唧唧喳喳(1000 t, 200 t(结束),,“二次”[],“凹”);......vco(罪(2 *π* t) (0.1 - 0.4) * fs, fs)};sds = signalDatastore(数据,'采样率',fs);
当数据存储中有数据时,从信号数据存储中读取每个观测数据并绘制短时间傅里叶变换图。
plotid = 1;而hasdata(sds) [dataOut,info] = read(sds); / /读取数据subplot(3,1,plotID) stft(dataOut,info.SampleRate) plotID = plotID + 1;结束
指定信号处理工具箱™中包含的样本信号的路径。
文件夹= fullfile (matlabroot,“例子”,“信号”,'数据');
创建并显示指向指定文件夹的信号数据存储。
sds = signalDatastore(文件夹)
/devel/bat/Bdoc21a/build/matlab/examples/signal/data/EMGdata.mat; /devel/bat/Bdoc21a/build/matlab/examples;’……/猛击/棒/ Bdoc21a /构建/ matlab /例子/信号/数据/ EMGindex.mat”;’……/猛击/棒/ Bdoc21a /构建/ matlab /例子/信号/数据/心率。垫”……{'/mathworks/devel/bat/Bdoc21a/build/matlab/examples/signal/data'} alteratefilesystemroots: [0x0 string] ReadSize: 1
指定信号处理工具箱™包含的信号样本的文件路径。
创建指向的信号数据存储. csv指定文件夹中的文件。
sds = signalDatastore(文件夹,“FileExtensions”,. csv”)
文件:{'…/devel/bat/Bdoc21a/build/matlab/examples/signal/data/tremor.csv'}文件夹:{'/mathworks/devel/bat/Bdoc21a/build/matlab/examples/signal/data'} alteratefilesystemroots: [0x0 string] ReadSize: 1
指定Signal Processing Toolbox™中包含的四个示例文件的路径。
文件夹= fullfile (matlabroot,“例子”,“信号”,'数据',......[“INR.mat”,“relatedsig.mat”,“spots_num.mat”,“voice.mat”]);
设置ReadSize财产2一次从两个文件中读取数据。每个读返回一个小区阵列,其中第一单元包含第一文件读取的第一变量,第二个小区包含来自第二文件的第一变量。当数据存储带有数据时,显示每个读取的变量的名称读.
2
sds = signalDatastore(文件夹,“ReadSize”2);而Hasdata (sds) [data,info] = read(sds);流(变量名:\ t % s \ n”info.SignalVariableNames)结束
变量名称:Date变量名称:s1变量名称:year变量名称:fs
指定信号处理工具箱™包含的三个信号的路径。
的strong.mat文件包含三个变量:她,他和fs.
strong.mat
他
fs
的slogan.mat文件包含三个变量:hotword,短语和fs.
slogan.mat
hotword
短语
的戒指文件包含两个变量:y和f年代.
戒指
年代
盛名= [“strong.mat”,“slogan.mat”,“戒指.Mat”];文件夹= fullfile (matlabroot,“例子”,“信号”,'数据',盛名);
创建指向指定文件夹的信号数据存储。每个文件包含多个不同名称的变量。每个文件中的标量表示一个样本率。定义一个自定义read函数,将文件中的所有变量读取为一个结构并返回变量dataOut以及变量的信息infoOut.的采样率现场infoOut包含每个文件中包含的标量,并且dataOut包含从每个文件读取的变量。
dataOut
infoOut
函数[dataOut,infoOut] = MyCustomRead(filename) fText = importdata(filename); / /输入数据值= struct2cell (fText);dataOut = {};为i = 1:长度(值)如果ISSCALAR(值{i})== 1 INFOOUT.SAMPLETE = VALUE {I};其他的dataout {end + 1} =值{i};结束结束结束
sds = signalDatastore(文件夹,“ReadFcn”, @MyCustomRead);
当数据存储中有未读文件时,从数据存储中读取并计算信号的短时间傅里叶变换。
而Hasdata(SDS)[数据,InfoOut] =读取(SDS);FS = InfoOut.Samplerate;数字为i = 1:长度(数据)如果长度(数据)> 1个子图(2,1,i)结束stft(数据{我},fs)结束结束
指定Signal Processing Toolbox™中包含的示例文件的路径。每个文件包含两个信号和一个随机采样率fs频率范围3000 ~ 4000 Hz。
第一个信号,X1,是凸二次啁啾。
X1
第二个信号,X2,是一种频率为正弦变化的啁啾。
X2
文件夹= fullfile (matlabroot,“例子”,“信号”,'数据','dataset');
创建指向指定文件夹的信号数据存储,并设置信号变量的名称和采样率。当数据存储带有数据时,读取每个观察并可视化每个信号的频谱图。
sds = signalDatastore(文件夹,'signervariamblenames',[x1的;“x2”],“SampleRateVariableName”,“fs”);tiledlayout流而Hasdata (sds) [data,info] = read(sds);{1} nexttile pspectrum(数据,信息。SampleRate,'谱图','twosiding',真正的)nexttile pspectrum({2}数据信息。SampleRate,'谱图','twosiding',真的)结束
数据存储|mapreduce|高
数据存储
mapreduce
高
您有这个示例的修改版本。您想打开这个示例与您的编辑吗?
你点击一个链接对应于这个MATLAB命令:
通过在MATLAB命令窗口中输入命令来运行命令。Web浏览器不支持MATLAB命令。金宝app
选择一个网站,以便在可用的地方进行翻译的内容,并查看本地活动和优惠。根据您的位置,我们建议您选择:.
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。
与当地办事处联系