matlab parfor不能用,matlab中parfor函数
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函数相关推荐
- matlab 脚本是什么意思,MATLAB提示不能在脚本中定义函数,是什么意思?
点击查看MATLAB提示不能在脚本中定义函数,是什么意思?具体信息 答:你试图在命令窗口定义函数,这种做法是错误的. 你需要建立一个.m文件,文件名是Chebyshev.m,然后在里面输入源程序. 答 ...
- matlab ode45三体问题,关于ode45中erf函数(输入必须为实数完全数的报错问题)
最近在做有关ODE45的微分方程求解,在微分方程中,运用到了erf函数,虽然之前也出现过类似的问题,已经解决,但是这次丝毫找不到问题的原因所在,毫无头绪. 主程序如下: [code] %------x ...
- matlab中的mkdir函数_科学网—Matlab中计算函数运行时间的三种方法及判断新建文件夹 - 张伟的博文...
(一)运行时间 1.tic和toc组合 计算daotic和toc之间那专段程序之间的属运行时间,它的经典格式为 : tic 函数 toc 复制函数代码,当代码遇到tic时Matlab自动开始计时,运行 ...
- Matlab中bwmorph函数的使用
Matlab中bwmorph函数的使用 Matlab中提供了一个基于形态学的处理函数,即以膨胀.腐蚀等操作为基础,其语法格式如下: bw2=bwmorph(bw1,operation,n); 其中bw ...
- 9.matlab中repmat函数
来源: matlab中repmat函数的用法 - CSDN博客 https://blog.csdn.net/anqier1009/article/details/5214978 B = repmat( ...
- 如何在Matlab中获取函数参数的数目?
本图文详细介绍了Matlab中获取函数参数数目的方法.
- 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 ...
- matlab变量区表示函数,MATLAB中的工作区,变量和函数
本文概述 工作空间 工作区包含我们在MATLAB中工作时创建的所有变量. 每当我们为变量分配值时, 它都会自动在工作空间中获取空间. 关闭环境后, 工作空间变量将消失, 因此请将这些变量保存在文件中以 ...
- 关于MATLAB中xlswrite函数写数据出现服务器异常情况的解决办法
关于MATLAB中xlswrite函数写数据出现服务器异常情况的解决办法 参考文章: (1)关于MATLAB中xlswrite函数写数据出现服务器异常情况的解决办法 (2)https://www.cn ...
- Matlab中Ksdensity()函数的用途 (2011-04-02 16:55:17)
Matlab中Ksdensity()函数的用途 (2011-04-02 16:55:17) 转载▼ 标签: 杂谈 分类: Matlab应用 我们在统计数据处理时,经常计算一个样本的概率密度估计,也就是 ...
最新文章
- 计算机内存不足 ssd,电脑提示内存不足怎么办 虚拟内存设置方法【详解】
- iOS 代码规范总结
- Android接入百度自动更新SDK
- java_poi教程.pdf,如何使用POI转换.DOC / .DOCX为PDF在Java ..?
- Spring Boot:快速启动MVC
- 初中数学知识点总结_初中物理 | 最全知识点总结
- c#鼠标点击TextBox控件后清空默认字体-完美解决方案
- 阶段5 3.微服务项目【学成在线】_day04 页面静态化_24-页面预览-页面预览测试
- 一个类的两个接口有同名函数,JAVA如何调用
- Linux学习——gcc编译C程序
- Scope参数错误或没有Scope权限
- 嵌入式学习之QT学习---8 QT网络编程之TCP通信
- c语言程序设计评分标准,c语言程序设计期末(A)标准答案及评分标准.doc
- C语言: 定义一个函数int isprime(int n),用来判别一个正整数n是否为素数,若为素数函数返回值为1,否则为0。在主函数中输入一个整数x,调用函数isprime(x)来判断这个整数x是
- Debian搭建dns服务器
- 计算机应用基础006在线作业2,东师《计算机应用基础》20春在线作业2答案00648
- 线。段。树--树状数组-主席树
- python数据可视化---Pyecharts作图方式、修饰逻辑与数据格式
- 物流系统(简单er图)
- 在参考了众多博客之后,我写出了多达三万字的HashMap源码分析,比我本科毕业论文都要精彩
热门文章
- ibatis动态查询条件
- Request.Url.Port 获取不到正确的端口号
- 走向DBA[MSSQL篇] - 从SQL语句的角度提高数据库的访问性能
- pycharm最常用的快捷键总结
- 使用PHP处理Kafka消息
- linux下为php添加curl扩展的方法
- Nginx+Lua(OpenResty) HelloWorld
- Linux安装nginx进行make的报错 原因pcre及其源代码路径
- Bug同样的shell脚本在win与linux系统下执行不一样
- Linux解决find /run/user/1000/gvfs