如何改变细胞阵列三维数组以加快计算?

1视图(30天)
你好,例如我有两个细胞阵列x {10} (20 x5)非整数值和k {10} (5 x1) 1:5整型值,并使用一个细胞数组索引数组。
x1 = cellfun (@ (x, y) x (y), x, k,“UniformOutput”、假);
和结果是x1 {10} (1 x5),不幸的是细胞与gpuArray乐趣是缓慢在处理更大的数组,使用三维数组的方式是什么,也许arrayfun吗?
1评论
Guillaume
Guillaume 2018年7月3日
蝠鲼Vaitonis 的评论错误地公布答案搬到这里:
如果一个例子
x (:: 1)
1 8 10 2 5
3 5 7 9 11
4 5 2 3 7
12 10 4 6 2
9 7 10 1 3
. .
k (:: 1)
3
4
1
5
3
然后x1 (:,: 1)
10 1 9 3 10

登录置评。

答案(1)

吉隆坡
吉隆坡 2018年7月2日
编辑:吉隆坡 2018年7月2日
转换 x 成一个三维矩阵使用
x_mat =猫(3 x {:});
然后如果你想提取第五行的页面,
x_mat (5::)%挤压(x_mat(5::)),如果你想要一个二维矩阵
1评论
蝠鲼Vaitonis
蝠鲼Vaitonis 2018年7月2日
这并不是说只需要五行,但列索引应该从k {10} (5 x1)整数值从1到5,x (5 k (: 1:):)。

登录置评。

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!