更快的长度版本(find()),用于从矢量(MATLAB)的某个范围中选择元素

时间:2016-10-04 12:15:01

标签: matlab

我有1Xn的单元格值数组。我想计算matlab中给定范围内的值。 我按如下方式实现了它:

count1 = length(find(h{1}<ti & h{1}>ti-INT));

h是我的单元格数组,我想要ti和ti-INT之间的值计数。

此实现提供了正确的结果,但速度非常慢。 是否有更快的功能可用于指定的操作?

1 个答案:

答案 0 :(得分:5)

对出现标志求和:

#!/bin/bash

echo
echo 'Fetching job page and write to Jobs.txt file...'
curl -o Jobs.txt https://cms.test.com

completestatus=`grep "completed" /home/Jobs.txt | awk -F "<p|< p="">" '{print $2 }' | awk '{print $4 }'`
echo $completestatus
if [ "$completestatus" == 0 ]; then

我知道我会为了使用onFBLoginClick() { Facebook.login(['email']).then(data=>{ this.faceBookToken=data.authResponse.accessToken; this.faceBookUserId=data.authResponse.userID; //Call getter function this.onGetDetailsClick(); }); } onGetDetailsClick() { Facebook.api(this.faceBookUserId+"/?fields=name,email,birthday,gender",['public_profile']).then(data=>{ alert(JSON.stringify(data)); }); }//onGetDetailsClick() count1 = sum(h{1}<ti & h{1}>ti-INT); 使用代码时效而扰乱MATLAB之神,但是:

tic

在多次运行中显示,toc的速度是x = rand(10^7,1); tic; sum(x>0.5); toc; tic; nnz(x>0.5); toc; tic; length(find(x>0.5)); toc; 的两倍,比sum()快3倍,例如:

nnz()

这是在我的R2012a上运行在带有i5 + 3Gb RAM的Windows机器上。

稍后编辑:

为了计算整个单元格数组中的元素,可以使用:

length(find())