Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 并行MATLAB-创建分布式向量_Arrays_Matlab_Distributed - Fatal编程技术网

Arrays 并行MATLAB-创建分布式向量

Arrays 并行MATLAB-创建分布式向量,arrays,matlab,distributed,Arrays,Matlab,Distributed,我在Matlab中有一个相对较小的向量 R = randn(1,1000); 现在我想通过选择一组指定的元素来创建一个更大的向量,如下所示 Q = R([1 5 8 5 8 1 3 4 19 1, etc]); 所选元素的数量numel(Q)为1000000+,非常大。是否可以执行此步骤,使生成的向量Q自动成为分布式阵列,准备在多核机器上进行并行处理 谢谢 这里提到的方法假设您希望至少有R和Q作为分布式阵列 方法#1 此解决方案将基于此- 请注意,对于上述代码,ind将位于客户端。如果您也希

我在Matlab中有一个相对较小的向量

R = randn(1,1000);
现在我想通过选择一组指定的元素来创建一个更大的向量,如下所示

Q = R([1 5 8 5 8 1 3 4 19 1, etc]);
所选元素的数量
numel(Q)
为1000000+,非常大。是否可以执行此步骤,使生成的向量
Q
自动成为分布式阵列,准备在多核机器上进行并行处理


谢谢

这里提到的方法假设您希望至少有
R
Q
作为分布式阵列

方法#1

此解决方案将基于此-

请注意,对于上述代码,
ind
将位于客户端。如果您也希望将其作为分布式阵列,请使用此-

N = 3;
R = randn(1,N,'distributed');
ind = ones(N,'distributed');
[~,ind(:,:)] = sort(rand(numel(R)));
Q = R(ind(:))
R = randn(1,N,'distributed');
Q = R(reshape(ceil(N*rand(N)),1,[]));
输出-

R =
    0.3080  0.8227  0.4248
Q =
    0.8227  0.3080  0.4248  0.4248  0.8227  0.3080  0.3080  0.4248  0.8227
在您的情况下,
N=1000


方法#2

如果您不关心
R
中的元素在
Q
中重复了多少次,那么您可以使用此选项-

N = 3;
R = randn(1,N,'distributed');
ind = ones(N,'distributed');
[~,ind(:,:)] = sort(rand(numel(R)));
Q = R(ind(:))
R = randn(1,N,'distributed');
Q = R(reshape(ceil(N*rand(N)),1,[]));

对不起,Q现在是分布式阵列吗?我需要对它做进一步的操作,我希望它们在16日并行工作cores@AiridasKorolkovas如果你只想创建一个分布向量,那么在你创建了一个法向量Q-
dQ=distributed(Q)
,其中
dQ
代表你的分布向量之后,这会起作用吗?当然会,但我认为直接使用分布式版本可以节省一半的处理时间。我正在考虑一些类似于直接从非零项构建稀疏()矩阵的方法,而不是先创建一个完整的矩阵,然后再转换为稀疏。@airidaskorolkova只是从
R=randn(1,N,'distributed')开始
R
是分布式阵列,然后
Q
将自动成为分布式阵列。因此,客户端不需要保存任何数据?检查编辑的代码。另外,我不知道为什么你需要在这里使用稀疏矩阵,因为你在这个问题上有问题。