Matlab:基于指定尺寸的字符串的suplots数

时间:2015-11-02 22:16:01

标签: matlab matlab-figure

我需要确定我需要多少个子图,它们的大小和所有信息都存储在一个字符串中。

假设有四个子图,它们的大小是:

上:1x1 下一个:2x1 下一个:2x1 下图:1x1

基本上中间两个是两对组合。通常,我会按如下方式指定子图:

subplot(6,1,1)
subplot(6,1,[2:3])
subplot(6,1,[4:5])
subplot(6,1,6)

现在,此信息存储在字符串中,如下所示:

'1;[2:3];[4:5];6'

所以,问题是从这种字符串中获取轴信息的最有效方法是什么。

我当然可以检查字符串中的每个字符是','';''['':'还是']'。这需要循环到length(str)和许多if语句,削减'['':'']',询问'是字符数字吗?','冒号,那么?等等。这很乏味。

我有数十个数字与这些次要情节,我只能认为必须有一个更好的方法这样做。

1 个答案:

答案 0 :(得分:1)

假设该字符串存储在str

str='1;[2:3];[4:5];6'
splits=strsplit(str,';');
splits=cellfun(@str2num,splits,'uni',0);
for i=1:numel(splits)
    subplot(numel(splits),1,splits{i});
    %plot
end