52matlab技术网站,matlab教程,matlab安装教程,matlab下载

标题: 随机一个具有特殊要求的6*6的矩阵 [打印本页]

作者: matlab的旋律    时间: 2022-9-1 13:00
标题: 随机一个具有特殊要求的6*6的矩阵
作为一个资深算法工程师,谈了一家公司被一个面试的工程师要求用matlab写一个程序,具体要求如下:生成一个6*6的矩阵,每个元素随机从1,2,3三个数字中取,要求行或列不能存在连续三个相同的数字。经过10分钟得到的程序如下:
  1. close all
  2. clear
  3. clc


  4. while 1
  5.     matrix = randi([1,3],6,6)
  6.     flag = 0;
  7.     for m = 1:4
  8.         for n = 1:6
  9.             pro_vec = matrix(m:m+2,n);
  10.             if all(pro_vec == pro_vec(1))
  11.                 flag = 1;
  12.                 break;
  13.             end
  14.         end
  15.         if flag == 1
  16.             break;
  17.         end
  18.     end

  19.     if flag == 1
  20.         continue;
  21.     end

  22.     for m = 1:6
  23.         for n = 1:4
  24.             pro_vec = matrix(m,n:n+2);
  25.             if all(pro_vec == pro_vec(1))
  26.                 flag = 1;
  27.                 break;
  28.             end
  29.         end
  30.         if flag == 1
  31.             break
  32.         end
  33.     end

  34.     if flag == 0
  35.         break;
  36.     end
  37.    
  38. end

  39. matrix
复制代码
运行得到满足条件的矩阵如下:

  1. matrix =

  2.      3     1     1     3     1     1
  3.      1     1     2     2     3     1
  4.      3     2     3     1     2     3
  5.      2     3     2     2     1     3
  6.      3     1     2     2     3     1
  7.      1     1     3     3     1     2
复制代码










欢迎光临 52matlab技术网站,matlab教程,matlab安装教程,matlab下载 (http://www.52matlab.com/) Powered by Discuz! X3.2