热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

MATLAB排列组合问题

毕设ing,最近每天除了看论文就是matlab仿真。MATLAB编程强调”vectorization”,对矩阵进行操作(毕竟人家名字就叫MatLab,矩阵的实验室)对于排列组合问题

毕设ing, 最近每天除了看论文就是matlab仿真。

MATLAB编程强调”vectorization”,对矩阵进行操作(毕竟人家名字就叫Mat Lab,矩阵的实验室)

对于排列组合问题,按照C语言的思路肯定就用for循环。但是在matlab里,for循环是不吃香的。一个一个for循环嵌套,又没有括号…看着挺晕的 。更简便、效率更高的方法就是 using vector operations instead of loops。详见: Improving the Speed of MATLAB Calculations

下面是几个我自己用到的有关排列组合的函数,啊真的很简单。

向量x中重复选取y个元素
我在百度上找的然后改了一下,可以重复选取元素(也就是包括111,222这种)。缺点是输入只能是向量,不能输入矩阵

function Y = perm_comb(x,y)
[Y{y:-1:1}] = ndgrid(x);
Y = reshape(cat(y+1,Y{:}),[],y);

二维坐标下选取n个坐标点
x,y是X,Y轴最大值,NP表示要选几个点,函数输出所有坐标点

function co = Choosecoord(x,y,NP)
[a b] = meshgrid(1:x,1:y);
co = [reshape(x,NP,1) reshape(y,NP,1)];

meshgrid函数是用来生成坐标网格点矩阵的,输出两个矩阵,一个是所有点的x坐标,另一个是所有点的y坐标。这个坐标系上所有点就用这俩矩阵里的所有元素表示(比如第一行第一列的坐标就是(a(1,1), b(1,1)), 第二行第一列(a(1,2), b(1,2))…)

还有就是nchoosek(a,b): a可以是向量也可以是一个数字。向量的话,输出b列的矩阵,表示从a向量里选b个元素的所有可能组合;a是数字的话,输出C(a,b)的计算结果。


推荐阅读
  • 本文详细介绍了在Luat OS中如何实现C与Lua的混合编程,包括在C环境中运行Lua脚本、封装可被Lua调用的C语言库,以及C与Lua之间的数据交互方法。 ... [详细]
  • 本文探讨了一个Web工程项目的需求,即允许用户随时添加定时任务,并通过Quartz框架实现这些任务的自动化调度。文章将介绍如何设计任务表以存储任务信息和执行周期,以及如何通过一个定期扫描机制自动识别并加载新任务到调度系统中。 ... [详细]
  • This article explores the process of integrating Promises into Ext Ajax calls for a more functional programming approach, along with detailed steps on testing these asynchronous operations. ... [详细]
  • 使用jQuery与百度地图API实现地址转经纬度功能
    本文详细介绍了如何利用jQuery和百度地图API将地址转换为经纬度,包括申请API密钥、页面构建及核心代码实现。 ... [详细]
  • 探索CNN的可视化技术
    神经网络的可视化在理论学习与实践应用中扮演着至关重要的角色。本文深入探讨了三种有效的CNN(卷积神经网络)可视化方法,旨在帮助读者更好地理解和优化模型。 ... [详细]
  • 最优化算法与matlab应用3:最速下降法
    最优化算法与matlab应用3:最速下降法最速下降法是一种沿着N维目标函数的负梯度方向搜索最小值的方法。(1)算法原理函数的负梯度表示如下:搜索步长可调整ak,通常记为(第k次迭代 ... [详细]
  • 苹果官方在线商店(中国)提供了关于MacBook Pro的详细信息。通过先进的工厂校准技术,新MacBook Pro能够精确地适应多种色彩空间标准,如sRGB、BT.601、BT.709及P3-ST.2084(HDR),确保用户获得最佳视觉效果。 ... [详细]
  • 如何高效学习鸿蒙操作系统:开发者指南
    本文探讨了开发者如何更有效地学习鸿蒙操作系统,提供了来自行业专家的建议,包括系统化学习方法、职业规划建议以及具体的开发技巧。 ... [详细]
  • Excel技巧:单元格中显示公式而非结果的解决方法
    本文探讨了在Excel中如何通过简单的方法解决单元格显示公式而非计算结果的问题,包括使用快捷键和调整单元格格式两种方法。 ... [详细]
  • 汇编语言标识符和表达式(四)(表达式与符号定义语句)
    7、表达式表达式是程序设计课程里的一个重要的基本概念,它可由运算符、操作符、括号、常量和一些符号连在一起的式子。在汇编语言中,表达式分为:数值表达式和地址表达式。(1)进制伪指令R ... [详细]
  • 本文介绍了使用Python和C语言编写程序来计算一个给定数值的平方根的方法。通过迭代算法,我们能够精确地得到所需的结果。 ... [详细]
  • Android 中的布局方式之线性布局
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 深入解析C语言中的关键字及其分类
    本文将全面介绍C语言中的关键字,并按照功能将其分为数据类型关键字、控制结构关键字、存储类别关键字和其他关键字四大类,旨在帮助读者更好地理解和运用这些基本元素。C语言中共有32个关键字。 ... [详细]
  • JUnit下的测试和suite
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • c语言二元插值,二维线性插值c语言
    c语言二元插值,二维线性插值c语言 ... [详细]
author-avatar
fadsfwebb
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有