热门标签 | 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)的计算结果。


推荐阅读
  • 本文详细介绍了如何使用 Yii2 的 GridView 组件在列表页面实现数据的直接编辑功能。通过具体的代码示例和步骤,帮助开发者快速掌握这一实用技巧。 ... [详细]
  • Python入门:第一天准备与安装
    本文详细介绍了Python编程语言的基础知识和安装步骤,帮助初学者快速上手。涵盖Python的特点、应用场景以及Windows环境下Python和PyCharm的安装方法。 ... [详细]
  • 解析SQL查询结果的排序问题及其解决方案
    本文探讨了为什么某些SQL查询返回的数据集未能按预期顺序排列,并提供了详细的解决方案,帮助开发者理解并解决这一常见问题。 ... [详细]
  • 非公版RTX 3080显卡的革新与亮点
    本文深入探讨了图形显卡的进化历程,重点介绍了非公版RTX 3080显卡的技术特点和创新设计。 ... [详细]
  • 本文详细探讨了Java中的24种设计模式及其应用,并介绍了七大面向对象设计原则。通过创建型、结构型和行为型模式的分类,帮助开发者更好地理解和应用这些模式,提升代码质量和可维护性。 ... [详细]
  • 解决PHP与MySQL连接时出现500错误的方法
    本文详细探讨了当使用PHP连接MySQL数据库时遇到500内部服务器错误的多种解决方案,提供了详尽的操作步骤和专业建议。无论是初学者还是有经验的开发者,都能从中受益。 ... [详细]
  • 本文探讨了如何在给定整数N的情况下,找到两个不同的整数a和b,使得它们的和最大,并且满足特定的数学条件。 ... [详细]
  • 机器学习中的相似度度量与模型优化
    本文探讨了机器学习中常见的相似度度量方法,包括余弦相似度、欧氏距离和马氏距离,并详细介绍了如何通过选择合适的模型复杂度和正则化来提高模型的泛化能力。此外,文章还涵盖了模型评估的各种方法和指标,以及不同分类器的工作原理和应用场景。 ... [详细]
  • 2023年京东Android面试真题解析与经验分享
    本文由一位拥有6年Android开发经验的工程师撰写,详细解析了京东面试中常见的技术问题。涵盖引用传递、Handler机制、ListView优化、多线程控制及ANR处理等核心知识点。 ... [详细]
  • 本文将深入探讨PHP编程语言的基本概念,并解释PHP概念股的含义。通过详细解析,帮助读者理解PHP在Web开发和股票市场中的重要性。 ... [详细]
  • 本文介绍了几种不同的编程方法来计算从1到n的自然数之和,包括循环、递归、面向对象以及模板元编程等技术。每种方法都有其特点和适用场景。 ... [详细]
  • 本文探讨了高质量C/C++编程的最佳实践,并详细分析了常见的内存错误及其解决方案。通过深入理解内存管理和故障排除技巧,开发者可以编写更健壮的程序。 ... [详细]
  • 在Java中,this是一个引用当前对象的关键字。如何通过this获取并显示其所指向的对象的属性和方法?本文详细解释了this的用法及其背后的原理。 ... [详细]
  • C语言标准及其GCC编译器版本
    编程语言的发展离不开持续的维护和更新。本文将探讨C语言的标准演变以及GCC编译器如何支持这些标准,确保其与时俱进,满足现代开发需求。 ... [详细]
  • C语言基础入门:7个经典小程序助你快速掌握编程技巧
    本文精选了7个经典的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社区 版权所有