1

Octave でのプロットに使用できるマーカーと線のスタイルのリストをプログラムで取得する方法はありますか?

理想的には、私は次のようなことをします

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

ノート:

  1. modリストを循環する関数をいくつか追加します。
  2. 両方のリストのサイズが同じでない可能性があることはわかっているため、サイクリングすると互いにずれることがあります。
4

2 に答える 2

1

プログラムで「完全に」行うことはおそらくやり過ぎであるというハワードに同意します。

ただし、それを行いたい場合は、「プロット」コマンドの「ヘルプ」出力を解析することをお勧めします。これは、これらの点に言及することが保証されており、同じ形式のままであるという合理的な保証があります将来さらにマーカーが追加された場合など

すべてを解析するわけではありませんが、これを行うとしたら、おそらく次のようになります。

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 を創造的に使用して、各カテゴリで必要なトークンを取得します。

于 2021-02-02T22:24:42.793 に答える