我需要在Matlab中编程做环

问题描述:

我有四个参数Q1,Q2,Q3,Q4和我想增加参数的顺序性0.05 我的意思是我想用0.1开始四个参数,然后增加Q1 0.05,其余为0.1。然后保持Q1 = 0.15,增加第二个Q2 0.05 a我需要在Matlab中编程做环

+0

这听起来像功课给我。你到目前为止尝试过什么? –

如果我正确理解这个,你想要一次增加四个参数吗?你怎么样用一个简单的模量声明,就像这样:

for (int i = 0; i < 100; i++) { 
    if (i % 4 == 0) { 
     Q1 += 0.05; 
    } else if (i % 4 == 1) { 
     Q2 += 0.05; 
    } else if (i % 4 == 2) { 
     Q3 += 0.05; 
    } else { 
     Q4 += 0.05; 
    } 
} 

这样,一个循环之后,你将有:

Q1 = 0.15 
Q2 = 0.10 
Q3 = 0.10 
Q4 = 0.10 

但经过两次,你必须:

Q1 = 0.15 
Q2 = 0.15 
Q3 = 0.10 
Q4 = 0.10 

等等......

另外,用Matlab没有for循环和if声明:

n=4; 
step=0.05; 
base=floor((2:1/4:n)); 
q=base*step; 
q1=q(4:end); 
q2=q(3:end-1); 
q3=q(2:end-2); 
q4=q(1:end-3); 

主要生产:

0.10 0.15 0.15 0.15 0.15 0.20 
0.10 0.10 0.15 0.15 0.15 0.15 
0.10 0.10 0.10 0.15 0.15 0.15 
0.10 0.10 0.10 0.10 0.15 0.15 

从我的理解,要生成从四个参数,在这里每个人都可以从0.1去一些更高价值的所有可能的元组(我用0.2)在0.05增加。如果是这样的话,你可以使用NDGRID功能:

[q1,q2,q3,q4] = ndgrid(0.1:0.05:0.2); 
params = [q1(:) q2(:) q3(:) q4(:)] 

结果为行:

params = 
      0.1   0.1   0.1   0.1 
     0.15   0.1   0.1   0.1 
      0.2   0.1   0.1   0.1 
      0.1   0.15   0.1   0.1 
     0.15   0.15   0.1   0.1 
      0.2   0.15   0.1   0.1 
      0.1   0.2   0.1   0.1 
     0.15   0.2   0.1   0.1 
      0.2   0.2   0.1   0.1 
      0.1   0.1   0.15   0.1 
     0.15   0.1   0.15   0.1 
      0.2   0.1   0.15   0.1 
      0.1   0.15   0.15   0.1 
     0.15   0.15   0.15   0.1 
      0.2   0.15   0.15   0.1 
      0.1   0.2   0.15   0.1 
     0.15   0.2   0.15   0.1 
      0.2   0.2   0.15   0.1 
      0.1   0.1   0.2   0.1 
     0.15   0.1   0.2   0.1 
      0.2   0.1   0.2   0.1 
      0.1   0.15   0.2   0.1 
     0.15   0.15   0.2   0.1 
      0.2   0.15   0.2   0.1 
      0.1   0.2   0.2   0.1 
     0.15   0.2   0.2   0.1 
      0.2   0.2   0.2   0.1 
      0.1   0.1   0.1   0.15 
     0.15   0.1   0.1   0.15 
      0.2   0.1   0.1   0.15 
      0.1   0.15   0.1   0.15 
     0.15   0.15   0.1   0.15 
      0.2   0.15   0.1   0.15 
      0.1   0.2   0.1   0.15 
     0.15   0.2   0.1   0.15 
      0.2   0.2   0.1   0.15 
      0.1   0.1   0.15   0.15 
     0.15   0.1   0.15   0.15 
      0.2   0.1   0.15   0.15 
      0.1   0.15   0.15   0.15 
     0.15   0.15   0.15   0.15 
      0.2   0.15   0.15   0.15 
      0.1   0.2   0.15   0.15 
     0.15   0.2   0.15   0.15 
      0.2   0.2   0.15   0.15 
      0.1   0.1   0.2   0.15 
     0.15   0.1   0.2   0.15 
      0.2   0.1   0.2   0.15 
      0.1   0.15   0.2   0.15 
     0.15   0.15   0.2   0.15 
      0.2   0.15   0.2   0.15 
      0.1   0.2   0.2   0.15 
     0.15   0.2   0.2   0.15 
      0.2   0.2   0.2   0.15 
      0.1   0.1   0.1   0.2 
     0.15   0.1   0.1   0.2 
      0.2   0.1   0.1   0.2 
      0.1   0.15   0.1   0.2 
     0.15   0.15   0.1   0.2 
      0.2   0.15   0.1   0.2 
      0.1   0.2   0.1   0.2 
     0.15   0.2   0.1   0.2 
      0.2   0.2   0.1   0.2 
      0.1   0.1   0.15   0.2 
     0.15   0.1   0.15   0.2 
      0.2   0.1   0.15   0.2 
      0.1   0.15   0.15   0.2 
     0.15   0.15   0.15   0.2 
      0.2   0.15   0.15   0.2 
      0.1   0.2   0.15   0.2 
     0.15   0.2   0.15   0.2 
      0.2   0.2   0.15   0.2 
      0.1   0.1   0.2   0.2 
     0.15   0.1   0.2   0.2 
      0.2   0.1   0.2   0.2 
      0.1   0.15   0.2   0.2 
     0.15   0.15   0.2   0.2 
      0.2   0.15   0.2   0.2 
      0.1   0.2   0.2   0.2 
     0.15   0.2   0.2   0.2 
      0.2   0.2   0.2   0.2