我是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。
答案 0 :(得分:1)
问题是subplot
函数的第三个输入不允许超过前两个输入的乘积。因此,您要生成一个3x3的网格图。您可以执行以下操作:
subplot(3,3,mod(j-1,9)+1)
这是在计算模运算(除以9的余数),因此永远不会超过9。