eval 函数运用!!
经常会遇到matlab里面有些变量命名其实有一样的规律,,但是不像矩阵这些是可以通过循环来获取的,这个时候就可以利用eval语句了;
 
首先,假设现在有10个名称类似的变量,road1,road2,road3.,,,road10.如何分别获取这些变量并有利于之后调用呢
用元胞数组结合eval函数:
 
road={}                          %创建一个新的元胞矩阵,将每个road1~20的数据放到road(i)中
for i=1:10       
     road{i}=eval([\'road\',num2str(i)]);% eval是用来执行括号里的expression
end
 
PS:此段函数并不能运行,因为没有给出真实的10个road数据;重点放在[\'road\',num2str(i)]可以组合变量名
 
 
然后,利用eval创建24个t1trj~t24trj的变量,并且每个是一个元胞矩阵
for i=1:24                             %将24个变量装载到相同大小的元胞矩阵中
    Name=[\'t\',num2str(i),\'trj\'];
    eval([Name,\'=cell(10000,1)\';]);
end
 
  
x=rand(10,1000);
a={}                             %创建一个空的胞元
for i=1:10                    %将x矩阵分成十个(1,1000 )大小的矩阵放进元胞矩阵a(i)中
     name=[\'a\',\'{\',num2str(i),\'}\'];
     eval([name,\'=x(i,:)\']);
end