strfind gpu上
7视图(30天)
显示旧的评论
接受的答案
丹尼尔Shub
2012年5月24日
STRFIND功能快速找到一个序列的出现。问题是,你叫它所有可能的序列,尽管我只认为你是感兴趣的序列,重复使用它。很容易和快速找到重复的序列:
首先创建一些数据,我可以在我的笔记本电脑上运行很快
M = 1 e6;
N = 6;
k = 100;
x =兰迪(k, 1 M);
第一个你需要重塑数据每N元素序列
y = 0 (m N, N);
为2 = 1 (mn):
y (ii):) = x ((0: (n - 1)) + 2);
结束
然后找到所有独特的N元素序列。
(a, b, c) =独特(y,“行”);
这些序列只会发生一次,我们想要删除这些内容
temp = c;
临时(b) = [];
=(独特的(临时));
然后,而不是循环每一个可能的序列可以做
为2 = 1:尺寸(1)
strfind (x, (ii):));
结束
我甚至不确定这最后一步是必要的因为信息可能已经在“c”。
我不知道如果这是更快。
0评论
更多的答案(5)
Jon Lareau
约2小时前
如果你想运行在GPU可以uint8字符值的字符串转换为矩阵。你需要建立你的GPU compiant处理函数来处理整数字符串中的字符的ASCII表示。
一个= uint8 (char (my_string_array));
结果= some_gpu_enabled_function (gpuArray (A));