Plot 获取以八度为单位的打印标记和线条样式列表

Plot 获取以八度为单位的打印标记和线条样式列表,plot,octave,linestyle,Plot,Octave,Linestyle,是否有一种方法可以通过编程方式获取标记和线样式列表,以八度进行打印 理想情况下,我会做类似的事情 mslist = whatever_function_for_marker_styles; lslist = whatever_function_for_line_styles; for i = 1:np plot(x, y(i,:), 'marker', mslist(i), 'linestyle', lslist(i)) endfor 注: 我会添加一些mod函数来在列表中循环 我知道

是否有一种方法可以通过编程方式获取标记和线样式列表,以八度进行打印

理想情况下,我会做类似的事情

mslist = whatever_function_for_marker_styles;
lslist = whatever_function_for_line_styles;
for i = 1:np
    plot(x, y(i,:), 'marker', mslist(i), 'linestyle', lslist(i))
endfor
注:

  • 我会添加一些
    mod
    函数来在列表中循环
  • 我知道两个列表的大小可能不一样,因此它们可能会在骑自行车时相互转换

  • 最简单的方法是从手册中获取符号并将其放入单元格数组中:

    mslist = {'+', 'o', '*', '.', 'x', 's', 'd', '^', 'v', '>', '<', 'p', 'h'};
    
    lslist = {'-', '--', ':', '-.'};
    

    mslist={'+'、'o'、'*'、'.'、'x'、's'、'd'、'^'、'v'、'>'、'最简单的方法是从手册中获取符号并将其放入单元格数组中:

    mslist = {'+', 'o', '*', '.', 'x', 's', 'd', '^', 'v', '>', '<', 'p', 'h'};
    
    lslist = {'-', '--', ':', '-.'};
    

    mslist={'+'、'o'、'*'、'.'、'x'、's'、'd'、'^'、'v'、'>'、'>'、'我同意霍华德的观点,即以编程方式“完全”完成这项工作可能是过火了

    但是,如果您确实想这样做,我打赌将解析“plot”命令的“help”输出,该命令保证提及这些点,并且有合理的保证,即使将来添加更多标记,它仍将保持相同的格式,等等

    我不会对整个过程进行分析,但如果您要这样做,您可能会这样开始:

    plotdoc = help('plot');                                                                                                                                                                                                                                                                                                       
    [plotdoc_head   , plotdoc_rest] = deal( strsplit( plotdoc     , '     linestyle' ){:} );                                                                                                                                                                                                                                      
    [plotdoc_lines  , plotdoc_rest] = deal( strsplit( plotdoc_rest, '     marker'    ){:} );                                                                                                                                                                                                                                      
    [plotdoc_markers, plotdoc_rest] = deal( strsplit( plotdoc_rest, '     color'     ){:} );                                                                                                                                                                                                                                      
    [plotdoc_colors , plotdoc_rest] = deal( strsplit( plotdoc_rest, '";displayname;"' ){:} );                                                                                                                                                                                                                                     
    

    或者类似的东西,然后创造性地使用regexp或strfind/strtoken/strplit来获得每个类别中所需的标记。

    我同意Howard的观点,即以编程方式“完全”完成这项工作可能有些过火

    但是,如果您确实想这样做,我打赌将解析“plot”命令的“help”输出,该命令保证提及这些点,并且有合理的保证,即使将来添加更多标记,它仍将保持相同的格式,等等

    我不会对整个过程进行分析,但如果您要这样做,您可能会这样开始:

    plotdoc = help('plot');                                                                                                                                                                                                                                                                                                       
    [plotdoc_head   , plotdoc_rest] = deal( strsplit( plotdoc     , '     linestyle' ){:} );                                                                                                                                                                                                                                      
    [plotdoc_lines  , plotdoc_rest] = deal( strsplit( plotdoc_rest, '     marker'    ){:} );                                                                                                                                                                                                                                      
    [plotdoc_markers, plotdoc_rest] = deal( strsplit( plotdoc_rest, '     color'     ){:} );                                                                                                                                                                                                                                      
    [plotdoc_colors , plotdoc_rest] = deal( strsplit( plotdoc_rest, '";displayname;"' ){:} );                                                                                                                                                                                                                                     
    

    或者类似的东西,然后创造性地使用regexp或strfind/strtoken/strplit来获取每个类别中所需的标记。

    谢谢。这个选项很好,我也考虑过。这就是为什么我问如何以编程方式获取列表(我不知道怎么做)。谢谢。这个选项很好,我也考虑过。这就是为什么我问过如何通过编程获得列表(我不知道怎么做)。