google中输入matlab parfor,你将得到足够多的资料来了解这是个什么东西,如果你耐心,建议去研究研究matlab

帮助中对parfor的说明。这里我只大概讲一下parfor。parfor就是paralle+for,也就是并行的for循环,怎么个并行法?我理解就是,matlab会弄出几个虚拟的小pc,一个算i=1:30部分循环,一个算i=50:80部分循环,再来一个算i=90:120部分循环,当然数字是我瞎编的,我是想说matlab将一个大循环分成小块,然后这些小块并行计算,最后再合在一起。这样,有一个问题,因为普通的循环是从i=1算到i=100,一个接一个算,如果下一次循环要依赖上一次循环怎么办?如果出现这种情况,那就不能用matlab的parfor了。用parfor的前提条件就是,循环的每次迭代独立,不相互依赖。举个简单的例子,计算1+2+3...+100就可以用parfor,但是如果计算斐波那契数列的前100个数字,那就不能用parfor了。

parfor就先解释到这里,其实它涉及到的东西远不止这些,而且感觉很令人纠结,如果你的C++很好,那就直接用C++吧!如果你还是想用matlab做并行,那就可以继续向下看看我的一些经验。

首先我是做图像处理的,1000多个图像,如果直接算可能要算上1天,所以我想用matlab的并行。我们都知道数字图像可以看成矩阵,我们经常用for循环里面再加一个for循环来处理,但是parfor循环不能嵌套。那么原来的

for i=1:N

for j=1:M

end

end

就必须改成

parfor i=1:N

for j=1:M

end

end

或者

for i=1:N

parfor j=1:M

end

end

但是,这都不是最好的方法,因为如果循环的次数太少,并行就显现不出威力来,所以最好的方法是这样:

for k=1:M*N

i=mod(k-1,M)+1  %行号

j=floor((k-1)/M)+1  %列号

end

要注意一点的是k是按照列来数的,也就是这样

1 4 7

2 5 8

3 6 9

所以,行号和列号别算错了。这样其他代码就可以不变了。

还需要注意的一点就是就是,如果对矩阵f的每个像素计算的点值要赋值给矩阵g。这个g要在循环外面声明好,而且要固定大小,在parfor循环里面最好也是向量,而非矩阵。计算完成后再用vec2mat函数转换为矩阵,这个函数之后,可能还需要个转置才能得到你需要的结果。

matlab parfor不能用,matlab中parfor函数相关推荐

  1. matlab 脚本是什么意思,MATLAB提示不能在脚本中定义函数,是什么意思?

    点击查看MATLAB提示不能在脚本中定义函数,是什么意思?具体信息 答:你试图在命令窗口定义函数,这种做法是错误的. 你需要建立一个.m文件,文件名是Chebyshev.m,然后在里面输入源程序. 答 ...

  2. matlab ode45三体问题,关于ode45中erf函数(输入必须为实数完全数的报错问题)

    最近在做有关ODE45的微分方程求解,在微分方程中,运用到了erf函数,虽然之前也出现过类似的问题,已经解决,但是这次丝毫找不到问题的原因所在,毫无头绪. 主程序如下: [code] %------x ...

  3. matlab中的mkdir函数_科学网—Matlab中计算函数运行时间的三种方法及判断新建文件夹 - 张伟的博文...

    (一)运行时间 1.tic和toc组合 计算daotic和toc之间那专段程序之间的属运行时间,它的经典格式为 : tic 函数 toc 复制函数代码,当代码遇到tic时Matlab自动开始计时,运行 ...

  4. Matlab中bwmorph函数的使用

    Matlab中bwmorph函数的使用 Matlab中提供了一个基于形态学的处理函数,即以膨胀.腐蚀等操作为基础,其语法格式如下: bw2=bwmorph(bw1,operation,n); 其中bw ...

  5. 9.matlab中repmat函数

    来源: matlab中repmat函数的用法 - CSDN博客 https://blog.csdn.net/anqier1009/article/details/5214978 B = repmat( ...

  6. 如何在Matlab中获取函数参数的数目?

    本图文详细介绍了Matlab中获取函数参数数目的方法.

  7. matlab s% d%,matlab中var函数的翻译For N-D arrays, VAR operates along the first

    matlab中var函数的翻译For N-D arrays, VAR operates along the first matlab中var函数的翻译 For N-D arrays, VAR oper ...

  8. matlab变量区表示函数,MATLAB中的工作区,变量和函数

    本文概述 工作空间 工作区包含我们在MATLAB中工作时创建的所有变量. 每当我们为变量分配值时, 它都会自动在工作空间中获取空间. 关闭环境后, 工作空间变量将消失, 因此请将这些变量保存在文件中以 ...

  9. 关于MATLAB中xlswrite函数写数据出现服务器异常情况的解决办法

    关于MATLAB中xlswrite函数写数据出现服务器异常情况的解决办法 参考文章: (1)关于MATLAB中xlswrite函数写数据出现服务器异常情况的解决办法 (2)https://www.cn ...

  10. Matlab中Ksdensity()函数的用途 (2011-04-02 16:55:17)

    Matlab中Ksdensity()函数的用途 (2011-04-02 16:55:17) 转载▼ 标签: 杂谈 分类: Matlab应用 我们在统计数据处理时,经常计算一个样本的概率密度估计,也就是 ...

最新文章

  1. 计算机内存不足 ssd,电脑提示内存不足怎么办 虚拟内存设置方法【详解】
  2. iOS 代码规范总结
  3. Android接入百度自动更新SDK
  4. java_poi教程.pdf,如何使用POI转换.DOC / .DOCX为PDF在Java ..?
  5. Spring Boot:快速启动MVC
  6. 初中数学知识点总结_初中物理 | 最全知识点总结
  7. c#鼠标点击TextBox控件后清空默认字体-完美解决方案
  8. 阶段5 3.微服务项目【学成在线】_day04 页面静态化_24-页面预览-页面预览测试
  9. 一个类的两个接口有同名函数,JAVA如何调用
  10. Linux学习——gcc编译C程序
  11. Scope参数错误或没有Scope权限
  12. 嵌入式学习之QT学习---8 QT网络编程之TCP通信
  13. c语言程序设计评分标准,c语言程序设计期末(A)标准答案及评分标准.doc
  14. C语言: 定义一个函数int isprime(int n),用来判别一个正整数n是否为素数,若为素数函数返回值为1,否则为0。在主函数中输入一个整数x,调用函数isprime(x)来判断这个整数x是
  15. Debian搭建dns服务器
  16. 计算机应用基础006在线作业2,东师《计算机应用基础》20春在线作业2答案00648
  17. 线。段。树--树状数组-主席树
  18. python数据可视化---Pyecharts作图方式、修饰逻辑与数据格式
  19. 物流系统(简单er图)
  20. 在参考了众多博客之后,我写出了多达三万字的HashMap源码分析,比我本科毕业论文都要精彩

热门文章

  1. ibatis动态查询条件
  2. Request.Url.Port 获取不到正确的端口号
  3. 走向DBA[MSSQL篇] - 从SQL语句的角度提高数据库的访问性能
  4. pycharm最常用的快捷键总结
  5. 使用PHP处理Kafka消息
  6. linux下为php添加curl扩展的方法
  7. Nginx+Lua(OpenResty) HelloWorld
  8. Linux安装nginx进行make的报错 原因pcre及其源代码路径
  9. Bug同样的shell脚本在win与linux系统下执行不一样
  10. Linux解决find /run/user/1000/gvfs