多个情节在MATLAB中合并并连接 [英] Multiple plots coombine and concatenate in matlab

查看:594
本文介绍了多个情节在MATLAB中合并并连接的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问题是我有一个如下所示的for循环:

The problem is that I have a for loop as follows:

for i=1:(rx * tx)    
    for j=1:(rx * tx)
        eval(sprintf('t_%d_%d_t = corrcoef(m_a%d_abs, m_b%d_abs)', pairs(i), pairs(j), pairs(i), pairs(j)));
        eval(sprintf('t_%d_%d = t_%d_%d_t(1, 2)', pairs(i), pairs(j), pairs(i), pairs(j)));

        if(eval(sprintf('t_%d_%d', pairs(i), pairs(j))) >= max_cor)
            eval(sprintf('figure(''name'', ''a (%d) <> b (%d)'')', pairs(i), pairs(j)));
            eval(sprintf('plot(a%d, ''r'')', pairs(i)));
            hold on;
            eval(sprintf('plot(b%d, ''b'')', pairs(j)));
            xlabel('Tones (f)');
        end
    end
end

this for循环根据类似于该图的if语句在新窗口中绘制每个图.

this for loop plots each Plot in a new window according to the if statement like this plot

我想在最后一个图之后合并每个下一个图,以便所有图都合并在一个图上但被串联起来. 我希望你能理解我.非常感谢.

I want to concatenate each next plot after the last plot so that all plots are combined on one plot but concatenated. I hope, you understand me. Many thanks.

推荐答案

应该以您的代码作为如何永远不要在Matlab中编写代码的示例!,因为您经常使用eval使得几乎不可能遵循您的代码.因此,在这里我只介绍我认为可以解决您的问题的方法,但是对于任何解释,您首先需要以正确的方式重写代码(您可能需要阅读

Your code should be taught as an example for How you should never write code in Matlab!, your massive use of eval make it virtually impossible to follow your code. Hence, I'll just drop here what I think may solve your problem, but for any explanations, you would first need to rewrite your code in a proper way (you may want to read this and this).

c = 0;
for k=1:(rx * tx)    
    for m=1:(rx * tx)
        eval(sprintf('t_%d_%d_t = corrcoef(m_a%d_abs, m_b%d_abs)', pairs(k), pairs(m), pairs(k), pairs(m)));
        eval(sprintf('t_%d_%d = t_%d_%d_t(1, 2)', pairs(k), pairs(m), pairs(k), pairs(m)));
        if(eval(sprintf('t_%d_%d', pairs(k), pairs(m))) >= max_cor)
            nx = eval(sprintf('numel(a%d)', pairs(k)));
            X = c+1:(c+nx);
            eval(sprintf('plot(X,a%d, ''r'')', pairs(k)));
            hold on;
            eval(sprintf('plot(X,b%d, ''b'')', pairs(m)));
            c = c+nx;
            xlabel('Tones (f)');
        end
    end
end

这篇关于多个情节在MATLAB中合并并连接的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆