リストから文字列変数を作成し、その名前の画像を保存するためにランダムな名前を作成します。コードのドラフトは以下の通りです:リストからランダムな文字列を使用した結果、Matlab sprintfの結果が不正になる
Names = [{'C'} {'CL'} {'SCL'} {'A'}];
nameroulette = ceil(rand(1)*4)
filename = sprintf('DG_%d.png', Names{1,nameroulette});
しかし、私はfilename
をチェックし、私は私が入力したテキストは、文字列の一つが、私はそれが来る見当がつかない数ではない続いている何を得ますから。たとえば、nameroulette = 1
の場合はfilename
はDG_67.png
、nameroulette = 4
の場合はfilename = 'DG_65.png'
となります。この番号はどこから来たのですが、どうすればこの問題を解決できますか?
'sprintf'では、'%d'識別子は整数を表します。つまり、 '%d'が現れる整数を挿入します。私はあなたが得ているものは、文字列の文字の[ASCII値](http://www.asciitable.com/)であると考えています( '' A''は '' 65 ''' C' '' 67')数値の代わりに文字列を挿入するには '%s'を使います。チェックアウト[sprintfドキュメントのこのセクション(http://www.mathworks.com/help/matlab/ref/sprintf.html#inputarg_formatSpec) – Dan