Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 使用matlab指定上限/下限后从数组中提取数据_Arrays_Matlab_Limit_Extract - Fatal编程技术网

Arrays 使用matlab指定上限/下限后从数组中提取数据

Arrays 使用matlab指定上限/下限后从数组中提取数据,arrays,matlab,limit,extract,Arrays,Matlab,Limit,Extract,是否有任何方法可以指定上限和下限,并从数组中提取数据 或 Matlab中是否有任何函数可用于从数组中提取在指定限制下的数据 例如: 我制作了两个样本图,并提取了以下数据点 A=[1 2.2 4.3 5.3 12.0 34.1 43.3] %Time stamp values from the first plot B=[1.4 7.6 35.2] %Time stamp values from the second plot 我从图B中获取每个时间戳值,并希望添加+2.0和-2.0,并将它们

是否有任何方法可以指定上限和下限,并从数组中提取数据

Matlab中是否有任何函数可用于从数组中提取在指定限制下的数据

例如: 我制作了两个样本图,并提取了以下数据点

A=[1 2.2 4.3  5.3 12.0 34.1 43.3] %Time stamp values from the first plot
B=[1.4 7.6 35.2] %Time stamp values from the second plot
我从图B中获取每个时间戳值,并希望添加+2.0和-2.0,并将它们指定为上限/下限。 我想知道一个文件的时间戳值是否落在任何上限/下限之下……

试试这个:

tol = 2;
result = bsxfun(@ge,A(:).',B(:)-tol) & bsxfun(@le,A(:).',B(:)+tol);
解释为:
如果
A
中的第n个点在
B
中的第m个点的+/-
tol
范围内,则结果(m,n)
为1,否则为0

如果您只想知道
A
的每个点是否在
B
中任何点的指定范围内,请使用

any(result)
使用您的示例数据:

>> A = [1 2.2 4.3 5.3 12.0 34.1 43.3];
>> B = [1.4 7.6 35.2];
>> result

result =

     1     1     0     0     0     0     0
     0     0     0     0     0     0     0
     0     0     0     0     0     1     0

>> any(result)

ans =

     1     1     0     0     0     1     0
你所需要的是这个

它基本上允许您检查是否存在公差范围内的匹配值

示例:

以下是如何使用
ismemberf
,前提是您已经下载了它,并且它在您的路径上:

A = [1 2.2 4.3 5.3 12.0 34.1 43.3] 
B = [1.4 7.6 35.2]
[lia, locb] = ismemberf(A,B,'tol',2)
将提供:

lia =

     1     1     0     0     0     1     0


locb =

     1     1     0     0     0     3     0