首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在matlab中使用parfor

在matlab中使用parfor
EN

Stack Overflow用户
提问于 2017-06-03 22:00:21
回答 1查看 124关注 0票数 0

我想在matlab中并行化我的部分代码。例如,以下部分:

代码语言:javascript
复制
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

但是有一个错误: error: parfor中的变量gax不能与MATLAB中的classified.See并行,称为“概述”。

有人知道如何删除错误吗?其他有用的信息是,v1是一个不包含任何重复元素的递增向量。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-04 00:19:54

正如错误消息中提到的,您必须遵循切片变规则gaxgay都违反了Fixed Index ListingForm of Indexing的规则。此外,您还可以将此示例A(i,20:30,end) % 20:30 not scalar作为文档中没有切片的变量的示例。

因此,您应该将parfor的所有部分更改为获得适当的并行计算。换句话说,您必须设计一个适当的并行算法,可以根据循环变量对该方法进行并行化。

一级索引的类型-第一级索引要么是括号(),要么是大括号{}。 固定索引列表-在第一级括号或大括号内,索引列表对于给定变量的所有出现都是相同的。 索引的形式-在变量的索引列表中,正好有一个索引涉及循环变量。 数组的形状-数组保持不变的形状。在为切片变量赋值时,赋值的右侧不能是[]或'',因为这些运算符试图删除元素。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44348921

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档