数学建模社区-数学中国

标题: 如何在循环作图中批量重命名数据文件夹名称 [打印本页]

作者: goodluck362    时间: 2014-1-9 12:02
标题: 如何在循环作图中批量重命名数据文件夹名称
大家好,我在作图中遇到了名称未定义成功的问题,请大家帮忙看看。
代码中原模型1和模型2直接生成有名字为filename_results.mat的文件,其中包含有名字为oo_irfs的文件夹,在这个文件夹下有许多变量序列,这些序列正是我要作图的曲线数据。这些变量名称为两部分组成,比如a和b,则变量名称自动生成为a_b,且a属于{a1,a2,...},b属于{b1,b2,...},即实际变量个数是这两个集合的组合。由于模型1和2的变量名称均为a_b,整个数据名称又很多,不可能一一改名称,所以我想通过对变量所在的文件夹oo_irfs名称进行重命名来标识不同的曲线数据来源,所以写了如下的代码:
  1. model1 %run模型1
  2. irff=oo_.irfs; %对模型1中的文件夹重命名
  3. save irff
  4. load irff

  5. model2 %run模型2
  6. irfff=oo_.irfs; %对模型2中的文件夹重命名
  7. save irfff
  8. load irfff

  9. ending_cell={'_b1','_b2'}; %比如有两个

  10. for ii=1:length(ending_cell)
  11. HOR=1:1:10; %图的横坐标范围设定
  12. var={'a1',a2'}; %比如有两个
  13. figure
  14. for jj=1:length(var)
  15. subplot(1,2,jj)
  16. eval(['irff.' var{1,jj},ending_cell{1,ii}]); %将模型1中的变量所属重命名,即新变量名称应为irff.a1_b1,...
  17. eval(['irfff.' var{1,jj},ending_cell{1,ii}]); %将模型2中的变量所属重命名,即新变量名称应为irfff.a1_b1,...
  18. hold on
  19. plot(HOR,[eval(['irff.' var{1,jj},ending_cell{1,ii}])],HOR,[eval(['irfff.' var{1,jj},ending_cell{1,ii}])]) %在子图内绘制两条曲线,其变量名称是相同的,但来自不同的文件夹(即不同模型)
  20. title([var{1,jj}] )
  21. end
  22. end
复制代码
Matlab跑的结果warning正是Undefined variable "irff" or class "irff.a1_b1"。这是不是意味着对irff文件夹的重命名及保存并没有成功?有没有热心高手能不能解惑一下啊?如何做才能成功完成上述意图啊?谢谢各位了,因为写论文所需,卡在此处,十分着急。再次感谢大家,祝大家新年快乐!








欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5