【MATLAB编程实例练习】 您所在的位置:网站首页 matlab排列组合算法 【MATLAB编程实例练习】

【MATLAB编程实例练习】

2023-11-19 06:39| 来源: 网络整理| 查看: 265

题目:       有两个数组a1=[1 2 3 4],a2=[5 6],想要生成一个新数组b(元素个数为奇数),其中奇数元素从a2中选取,偶数元素从a1中选取,当a2中元素选取完后就停止选取,以这种方式生成所有可能的排列组合,得到数组b。 思路:

结束条件为:生成数组b的大小已经达到要求,需要一个if判断; 选择方法为:按题目要求偶数元素从a1中选取,奇数元素从a2中选取,因此需要一个if判断来决定当前需要生成的数是位于b的奇数位还是偶数位; 生成条件为:无论从a1中选取元素还是从a2中选取元素,所选取的元素不能和已生成的b中元素重复。因此需要一个for循环比较当前元素b(cur)与b(1)~b(cur-1)是否重复。

主函数:

clear all clc global b plan n L1 L2 a1 a2 a1 = [1 2 3 4]; a2 = [5 6]; b = []; plan = []; L1 = length(a1); L2 = length(a2); n = L2+1; find_combination(1);

调用函数:

function find_combination(cur) global b plan n L1 L2 a1 a2 if cur == n+1 plan = [plan;b];%plan存储最终的方案 else if mod(cur,2)%奇数 for i=1:L2


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有