2

私は次のようなものを持っています:

A = [1 2 5; 1 5 7];

B = A(1,:);

Bを出力します:

B = A(1,:);

B =

 1     2     5

Bに含まれているものを1つの単一の文字列に結合しようとしています。

1/2/5
4

2 に答える 2

4

使用できますsprintf

sprintf('%d/',B)

これにより、ほとんど必要なものが得られますが/、最終的には不要になります。

>> sprintf('%d/',B)

ans =

1/2/5/

削除したい場合:

st = sprintf('%d/',B);
st(end) = [];

@hmuster が正しく指摘しているように\b、バックスペース文字でそれを行うことができます。

st = [sprintf('%d/',B) sprintf('\b')];

ただし、@AndrewJanke が正しく指摘しているように、この文字列がパイプまたはファイルに書き込まれると問題になる可能性があります。したがって、注意して使用してください。

于 2012-10-18T14:42:22.027 に答える
2

適切に実行する(IEで再利用可能)場合は、次の2つの手順があります。

  1. 数値を文字列に変換します(これにより、後でクレイジーな値をnum2str http://www.mathworks.com/help/matlab/ref/num2str.htmlで適切に変換できるようになります

  2. 文字列を水平方向に連結します(MATLAB連結プロパティA = [BC]を使用できます)が、機能的な方法はstrcat http://www.mathworks.com/help/matlab/ref/strcat.htmlです。

于 2012-10-18T14:43:29.077 に答える