数学建模社区-数学中国
标题:
如何在循环作图中批量重命名数据文件夹名称
[打印本页]
作者:
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名称进行重命名来标识不同的曲线数据来源,所以写了如下的代码:
model1 %run模型1
irff=oo_.irfs; %对模型1中的文件夹重命名
save irff
load irff
model2 %run模型2
irfff=oo_.irfs; %对模型2中的文件夹重命名
save irfff
load irfff
ending_cell={'_b1','_b2'}; %比如有两个
for ii=1:length(ending_cell)
HOR=1:1:10; %图的横坐标范围设定
var={'a1',a2'}; %比如有两个
figure
for jj=1:length(var)
subplot(1,2,jj)
eval(['irff.' var{1,jj},ending_cell{1,ii}]); %将模型1中的变量所属重命名,即新变量名称应为irff.a1_b1,...
eval(['irfff.' var{1,jj},ending_cell{1,ii}]); %将模型2中的变量所属重命名,即新变量名称应为irfff.a1_b1,...
hold on
plot(HOR,[eval(['irff.' var{1,jj},ending_cell{1,ii}])],HOR,[eval(['irfff.' var{1,jj},ending_cell{1,ii}])]) %在子图内绘制两条曲线,其变量名称是相同的,但来自不同的文件夹(即不同模型)
title([var{1,jj}] )
end
end
复制代码
Matlab跑的结果warning正是
Undefined variable "irff" or class "irff.a1_b1"。这是不是意味着对irff文件夹的重命名及保存并没有成功?有没有热心高手能不能解惑一下啊?如何做才能成功完成上述意图啊?谢谢各位了,因为写论文所需,卡在此处,十分着急。再次感谢大家,祝大家新年快乐!
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5