【发布时间】:2017-06-04 22:55:39
【问题描述】:
我想在 matlab 中并行化我的部分代码。例如下面的部分:
v1=[1,3,6,8];
ggx=5.*ones(15,14);
gax=ones(15,14);
parfor i = 1:length(v1)
m = v1(i);
if m > 1
gax(1:m-1,m-1) = ggx(1:m-1,m-1);
end
if m<nn
gax(m+1:end,m) = ggx(m+1:end,m);
end
end
但是有一个错误: 错误:无法对 parfor 中的变量 gax 进行分类。请参阅 MATLAB 中的并行 for 循环,“概述”。
有谁知道我怎样才能消除错误?其他有用的信息是 v1 是一个不包含任何重复元素的递增向量。
【问题讨论】:
-
你试过在
parfor之前初始化gax和gay吗?此外,我认为parfor在这种情况下不会帮助优化您的代码。最好只使用常规的for循环。 -
是的,我在 parfor 之前给了他们价值。 @kedarps
-
这似乎是一个切片变量索引问题,请参阅here。
-
我知道,阅读链接后,我无法修复它@kedarps
-
我编辑了这个问题。你知道我该如何解决吗? @kedarps
标签: matlab optimization parfor