matlab实现穷举法
今天在写程序时,需要实现一个穷举,即现有一个1*8的矩阵,第一个元素有四个值,第二到七个元素分别从0,-1,+1里面取值,要列出所有情况,即有8748种情况,在论坛上遇到一位提出利用ndgrid函数即可解决上述问题。
原文地址:(http://www.ilovematlab.cn/forum.php?mod=viewthread&s_tid=followedthread&tid=207681)
ndgrid函数
clc;
clear;
a=[0,pi*0.5,pi,1.5*pi];
an=[-1,0,1];
all_an=zeros(4*3^7,8);
all_length=length(all_an);
[a0,a1,a2,a3,a4,a5,a6,a7] = ndgrid(a,an,an,an,an,an,an,an);
all_an=[a0(: ) a1(: ) a2(: ) a3(: ) a4(: ) a5(: ) a6(: ) a7(: )];