Arrays 使用matlab指定上限/下限后从数组中提取数据
是否有任何方法可以指定上限和下限,并从数组中提取数据 或 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,并将它们
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