zoukankan      html  css  js  c++  java
  • matlab调用规则变量名eval函数

    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
  • 相关阅读:
    bzoj 1103
    [POI] 大都市meg
    [Luogu] 网络
    [Luogu] 1600
    [Luogu] 树状数组
    [Luogu] 软件包管理器
    [Luogu] 遥远的国度
    [USACO5.5] 矩形周长Picture
    [Luogu] 魔板
    【NOIP2015】斗地主
  • 原文地址:https://www.cnblogs.com/Roxy121314/p/7912343.html
Copyright © 2011-2022 走看看