我想在MATLAB中对我的循环进行矢量化更好.目前,我正在尝试计算整数列表中值的出现次数.我的代码与此类似:
list = [1 2 2 3 1 3 2 2 2 1 5];
occurrence_list = zeros(1,max(list));
for x=list
occurrence_list(x) = occurrence_list(x) + 1;
end
Run Code Online (Sandbox Code Playgroud)
是否有一个简单的矢量化替换为循环?(或者是否存在我缺少的内置MATLAB函数?)我在非常小的数据集上执行此操作,因此时间不是问题.我只是想改进我的MATLAB编码风格.
我正在使用twitter4j库访问公共twitter流.我正在尝试制作涉及地理标记推文的项目,我需要收集大量的推文进行测试.
现在我从twitter获得未经过滤的流,只保存带地理标记的推文.这很慢,因为VAST的大部分推文都没有地理标签.我希望twitter流只向我发送带有地理标记的推文.
我已经尝试过使用这个问题中提到的方法,你用一个大小为360*180*的边界框进行过滤,但这对我不起作用.使用该过滤器时我没有收到任何错误,但我仍然得到99%没有地理标记的推文.我是这样做的:
ConfigurationBuilder cb = new ConfigurationBuilder();
cb.setDebugEnabled(true)
.setOAuthConsumerKey("censored")
.setOAuthConsumerSecret("censored")
.setOAuthAccessToken("censored")
.setOAuthAccessTokenSecret("censored");
TwitterStream twitterStream = newTwitterStreamFactory(cb.build()).getInstance();
StatusListener listener = new MyStatusListener();
twitterStream.addListener(listener);
//add location filter for what I hope is the whole planet. Just trying to limit
//results to only things that are geotagged
FilterQuery locationFilter = new FilterQuery();
double[][] locations = {{-180.0d,-90.0d},{180.0d,90.0d}};
locationFilter.locations(locations);
twitterStream.filter(locationFilter);
twitterStream.sample();
Run Code Online (Sandbox Code Playgroud)
有关为什么我仍然收到没有地理标记的推文的任何建议?
编辑:我只是重新阅读twitter4j javadoc,在Twitter流中添加过滤器,并说"默认访问级别允许最多200个跟踪关键字,400个跟随用户ID和10个1度位置框." 边界框可能只有1度宽?这与我遇到的原始信息不同.那是我的问题吗?我的过滤请求太大,以至于被忽略了?尝试使用它时我没有收到任何错误.