如何设置动态循环

时间:2019-07-02 08:19:02

标签: arrays matlab

我是Matlab的新手,我不知道如何解决此问题。我有一个85个双精度数组,我想以9乘9浏览该数组(即:对于i=1:9)。然后将结果绘制成数字(3 * 3)。 为了解释代码,我尝试浏览“开始”和“结束”数组中包含的数据,然后每次绘制功率谱,以便输出为9条曲线(或者我可能还剩下一些曲线)。

figure   
for j=1:9  
    BinData=ExtractContinuousData([],Info,[7],Start(j),End(j),[]);
    [S1,t,f]=mtspecgramc(BinData); 
    subplot(3,3,j)
    plot_matrix (S1,t,f);    
end

%Start and End are the arrays that contains the 85 doubles each

但是问题是我只能绘制前9个元素。 例如,如果我要浏览第10个元素(j=10),则命令plot(3,3,j)无效(因为在这种情况下j可以采用的最大值是9。

1 个答案:

答案 0 :(得分:1)

问题是subplot函数的第三个输入不允许超过前两个输入的乘积。因此,您要生成一个3x3的网格图。您可以执行以下操作:

subplot(3,3,mod(j-1,9)+1)

这是在计算模运算(除以9的余数),因此永远不会超过9。