我希望有人可以帮我解决这个问题。
最初我正在使用以下脚本为 w 和 oLmag 数组进行绘图。
figure(1)
for i=1:dsize(1)
subplot(2,1,1);
semilogx(w,oLmag(i,:),color(i));
if(i==1), hold; end
end
现在我已经分别使用单元格数组 oLmag_c 和 w_c 收集了使用不同 w 生成的所有 oLmag oLmag_c {1} 对应于 w_c {1} ,依此类推。现在我想在一个图中绘制所有相应的 oLmag的和 w的。
hold all;
for i=1:dsize(1)
for k=1:length(w)
subplot(2,1,1);
semilogx(w{k},oLmag{k}(i,:),color(i));
if(i==1); hold; end
end;
end
这似乎并不是将所有情节整合在一起并且只产生一个情节。另外我想在每个情节上都有传奇,例如1,2 ...说1代表 w_c {1} 和 oLmag_c {1} 情节等等。
答案 0 :(得分:0)
在第二个代码块中, hold 被调用两次。一旦开始时保持所有,那么在循环的第一次迭代中第二次
if(i==1); hold; end
第二次调用按住切换当前轴的保持状态。这可能解释了为什么你只得到一个情节。
我会改变你在开始时调用 hold on 或_hold(gca,'on')的方法,并删除第二个调用以保存在嵌套循环中(第二个代码块的第6行) )。
因此,在添加样本数据并删除第6行后,代码块可能会读取类似
的内容%# First setup the axes and set 'hold on'
hAxes(1) = subplot(2,1,1)
hAxes(2) = subplot(2,1,2)
hold(hAxes,'on'); %# Using the function form of hold instead
%#hold all
%# some sample data
w={[1 2] [3 4] [4 5]};
oLmag={[22.9983 16.8412; 22.3405 16.1763], ...
[16.7192 14.0807;14.2588 11.4160], ...
[12 13;15 14]};
%# nested loops for plotting
for k=1:length(oLmag)
for i=1:length(oLmag{k})
xy=[w{k};oLmag{k}(i,:)];
subplot(2,1,1);
semilogx(w{k},oLmag{k}(i,:));
subplot(2,1,2);
%# add plots to second axes here...
%#if(i==1);hold;end; %# remove extra call to hold
end;
end