- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
根据 Brownlees & Gallo 2006(如果您可能感兴趣),我正在尝试从报价数据系列中删除异常值。
代码运行良好,但考虑到我正在处理非常长的向量(最大的向量有 20m 的观察值,20 小时后还没有完成计算)我想知道如何加快它的速度。
到目前为止我所做的是:
我将时间和日期格式更改为 numeric double,我发现它节省了相当多的处理时间和大量内存。
我为向量分配了内存:
[n] = size(price);
x = price;
score = nan(n,'double'); %using tic and toc I saw that nan requires less time than zeros
trimmed_mean = nan(n,'double');
sd = nan(n,'double');
out_mat = nan(n,'double');
这是我想删除的循环。我读到矢量化会加速很多,尤其是使用长矢量。
for i = k+1:n
trimmed_mean(i) = trimmean(x(i-k:i-1 & i+1:i+k),10,'round'); %trimmed mean computed on the 'k' closest observations to 'i' (i is excluded)
score(i) = x(i) - trimmed_mean(i);
sd(i) = std(x(i-k:i-1 & i+1:i+k)); %same as the mean
tmp = abs(score(i)) > (alpha .* sd(i) + gamma);
out_mat(i) = tmp*1;
end
这是我想做的
trimmed_mean=trimmean(regroup_matrix,10,'round',2);
score=bsxfun(@minus,x,trimmed_mean);
sd=std(regroup_matrix,2);
temp = abs(score) > (alpha .* sd + gamma);
out_mat = temp*1;
但考虑到我是 Matlab 的新手,我不知道如何正确构建相邻观察矩阵。我只是认为它的形状应该是这样的:regroup_matrix= nan (n,2*k)
。
编辑:具体来说,我想做的(但我做不到)是:
给定“x”中每个观察值“i”的列向量“x”(n,1)我想将“k”个相邻观察值带到“i”(从 i-k 到 i-1 和从 i+1 到 i +k) 并将这些观察结果作为矩阵的行 (n, 2*k)。
编辑 2:我对代码做了一些更改,我认为我离解决方案越来越近了。我发布了另一个问题,专门针对我认为现在的问题:
Matlab: Filling up matrix rows using moving intervals from a column vector without a for loop
我现在要做的是:
[n] = size(price,1);
x = price;
[j1]=find(x);
matrix_left=zeros(n, k,'double');
matrix_right=zeros(n, k,'double');
toc
matrix_left(j1(k+1:end),:)=x(j1-k:j1-1);
matrix_right(j1(1:end-k),:)=x(j1+1:j1+k);
matrix_group=[matrix_left matrix_right];
trimmed_mean=trimmean(matrix_group,10,'round',2);
score=bsxfun(@minus,x,trimmed_mean);
sd=std(matrix_group,2);
temp = abs(score) > (alpha .* sd + gamma);
outmat = temp*1;
我在创建 matrix_left 和 matrix_right 时遇到问题。我用于索引的 j1 是一个包含价格观察指标的列向量。输出很简单
j1=[1:1:n]
price 是一个 double 的列向量,大小为 (n,1)
最佳答案
对于 reshape ,您可以执行以下操作:
idxArray = bsxfun(@plus,(k:n)',[-k:-1,1:k]);
reshapedArray = x(idxArray);
关于matlab - 优化代码,去掉 "for loop",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21634394/
我有一个名为 users 的表,其中包含列 firstname 和 lastname。 我正在努力研究如何构造 WHERE 子句以返回匹配的名字、姓氏、名字加空格和姓氏以及姓氏加逗号和名字的结果。例如
如何去掉@后面的单词?例如,如果字符串是 12 @ 8.97 MB 那么输出将变成 12 如何在 JavaScript 中执行此操作? 最佳答案 试试这个: var index = str.index
这是一个创建面包屑的函数。它最初来自其他人,但我对其进行了调整以满足我的需求。现在——我想修复“for(i in bits)”的错误语法,但是当我尝试了我认为可行的方法时,它不起作用。 for (i
这是我对 Vim 折叠的设置: hi Folded term=bold ctermfg=White 如何去掉下划线? 最佳答案 对于您未指定的属性,:hi 命令将保留前一个属性。所以如果你的color
我的程序正确输出了两个 data.frame 的结果秒 Browse[2]> Mismatch Num.Residue PDB.Residue Canonical.Residue 1
我正在为我的应用程序创建一个 NSTouchBar。当该栏显示时,我在左侧看到此 ESC 图标,在右侧看到这些其他图标: 有没有办法摆脱它们并让整个酒吧区域可用? 最佳答案 右侧的图标是“控制条”。
如何删除此文本 My First Heading My first paragraph. 看起来像 My First Heading My first paragraph. 使用
我有以下 javascript promise ,我正在循环遍历文档列表,将它们逐一上传到 Dropbox(API 调用),获取每个文档的共享链接,将它们保存在数组中,然后然后生成一封包含这些链接的电
我试图找到一个解决方案来避免 CKEditor,但旧的 FCKeditor 也去掉了任何标记从先前插入的内容到数据库。 案例: 我将 html 内容插入到数据库中,有些内容包含 元素。 我用 CKEd
这是我当前的 toString 方法 StringBuilder string = new StringBuilder(); for (int i = 0; i < knowledgeD.si
我在Java中的Hashmap中有一个键值对,我按以下方式遍历Map。 ArrayList mysection = new ArrayList(); ArrayList temp =
这个问题已经有答案了: Pandas Merging 101 (8 个回答) 已关闭 3 年前。 我想通过索引列合并两个数据帧。我的代码是: import pandas as pd import nu
我试图使用 facet_grid布置面板,例如, library(tidyverse) library(lubridate) economics %>% filter(date >= ymd(19
我有一个 C# 字符串对象,它包含一个泛型方法的代码,前面是一些标准的 C 风格多行注释。 我想我可以使用 System.Text.RegularExpressions 来删除评论 block ,但我
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 9 年前。 Improve this q
我的 wrapper 中有空格,我无法摆脱它们。即使我将 paddings 设置为 0,仍然有空间。我不知道是什么问题。我不想将包装器放在 body 标签中,这样我以后可以更改我想要的内容。 我是 H
http://amz.com/New-Balance-WT910-Trail-Running/dp/B0098FOFCW/ref=zg_bsms_shoes_2 我不需要最后一个/ref=zg_bsm
我正在尝试将多名称列转换为 python 中的单名称列。现在,列名称如下所示: [('passengers', 'January'), ('passengers', 'February')
根据 Brownlees & Gallo 2006(如果您可能感兴趣),我正在尝试从报价数据系列中删除异常值。 代码运行良好,但考虑到我正在处理非常长的向量(最大的向量有 20m 的观察值,20 小时
我有一个 UITableView(恰好有一个 UISearchBar),但似乎无法弄清楚如何去掉它上方的白色/灰色边框。我需要在 UISearchBar 和它上面的黑色之间有无缝的黑色。 我已经尝试隐
我是一名优秀的程序员,十分优秀!