2017-10-26 5 views
1

私はdouble {52x1}のセルを持っていますが、各要素に記号±を連結したいと思います。シンボルをMatlabのセル配列値と連結します

私が抱えている問題は、sprintfがシンボルを呼び出すためのMatlabコード\ pmをサポートしていないことです。

何か助けてください!

答えて

3

\pmはTeX/LaTeXコマンドで、Matlabが使用するインタプリタがLaTexを理解している場合にのみ±となります。これは、たとえばTickLabelInterpreterプロパティが'tex'に設定されているときに軸ラベルに表示されます。

sprintfには、±シンボル(コードポイント177)を直接使用することができます。例えば、

x = num2cell(rand(5,1)); % cell array of numbers 
sprintf('±%f\n', [x{:}]) 

または

sprintf([177 '%f\n'], [x{:}]) 

は、私はsprintfにそれを渡すために数値ベクトルに番号のセル配列を変換する必要がありました

ans = 
±0.126987 
±0.913376 
±0.632359 
±0.097540 
±0.278498 

注意を与えます。そのステップを避けるために、数値ベクトルとして直接データを定義することを検討してください。


あなたは結果として文字列のセル配列にしたい場合:

cellfun(@(t) sprintf([177 '%f\n'], t), x, 'UniformOutput', false) 
+0

おかげ@Luis Mendo、それは良いスタートです!なぜ私はそれを動作させることができなかったのかを説明します。しかし、私は、セル{1x52}に出力を保存することが期待されていました。ここでは、各セルはシンボル「attached」で前のセルの値を含んでいます。現在のソリューションは、char型変数{1x50} – Ryderc

+0

を作成します。編集された答え、最後の部分を参照してください。それはcharベクトルのセル配列を与える –

関連する問題