【发布时间】:2017-06-25 16:34:43
【问题描述】:
这是我的代码的一个更简单的版本。
.....
ch_array = [36, 40, 44, 48, 149, 161];
figure;
for i=1:length(ch_array)
ch = ch_array(i);
subplot(3, 3, i);
eval(sprintf('plot(mean_a_%d_f, ''r'')', ch));
hold on;
eval(sprintf('plot(mean_b_%d_f, ''b'')', ch));
xlabel('Subcarrier (f)');
ylabel('Absolute values');
eval(sprintf('title(''Channel: %d'')', ch));
end
.....
mean_a 和 mean_b 依赖于 ch_array,因此有 mean_a_36_f、mean_a_40_f、...、mean_a_161_f,与 mean_b 相同。
这个for循环根据ch_array绘制图形,下图:
如您所见,为每个ch_array 元素绘制了对应的mean_a_ch 和mean_b_ch。
现在,目的是连接这些子图,以便所有子图都在一个数字上,但连接起来而不是hold on 的方式。串联应如下所示:
每个连接图的位置将在 X 轴上表示,如图所示。
【问题讨论】:
-
是的,我是新来的,我决定只发一个新帖子。
-
如前所述,您应该已经编辑了原始问题。另外,请摆脱导致您陷入邪恶
eval的动态变量名称,并使用矩阵(如果无法使用矩阵,则使用元胞数组/结构)。您的代码似乎可以工作,但这是对他的代码所能做的最糟糕的事情。 i.imgur.com/XtcajQS.gif -
为了回答您的问题,
hold on肯定会在这里工作。您只需要在 x 轴的值中添加一些偏移量。但是您上传的图中的xticks与原始图表不符
标签: matlab plot matlab-figure