在线时间 18 小时 最后登录 2014-3-20 注册时间 2013-8-22 听众数 5 收听数 0 能力 0 分 体力 240 点 威望 0 点 阅读权限 20 积分 89 相册 0 日志 0 记录 0 帖子 32 主题 3 精华 0 分享 0 好友 8
升级 88.42%
TA的每日心情 奋斗 2014-3-20 15:01
签到天数: 23 天
[LV.4]偶尔看看III
大家好,我在作图中遇到了名称未定义成功的问题,请大家帮忙看看。
代码中原模型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文件夹的重命名及保存并没有成功?有没有热心高手能不能解惑一下啊?如何做才能成功完成上述意图啊?谢谢各位了,因为写论文所需,卡在此处,十分着急。再次感谢大家,祝大家新年快乐!
zan