1
私はmatlabの数値に変換したい数値(文字列形式)のセル配列を持っています。問題は二重引用符で囲まれているため、str2numを使用して変換できないようです。matlabで文字列を数値に変換する
a = {'"15"'; '"16"'; '"17"'; '"30"'; '"50"'}
数字から二重引用符を削除する方法はありますか?ありがとう!
私はmatlabの数値に変換したい数値(文字列形式)のセル配列を持っています。問題は二重引用符で囲まれているため、str2numを使用して変換できないようです。matlabで文字列を数値に変換する
a = {'"15"'; '"16"'; '"17"'; '"30"'; '"50"'}
数字から二重引用符を削除する方法はありますか?ありがとう!
二重引用符を手動で削除する必要があります。 cellfun
を使用すると、anonymous functionを各セルに適用できます。最初と最後の文字オフ
匿名関数単にストリップ:ここでは2つの方法があります。
a = {'"15"'; '"16"'; '"17"'; '"30"'; '"50"'};
result = cellfun(@(x) str2double(x(2:end-1)), a);
一部の文字列は二重引用符記号を含めることはできません、または任意の位置にいくつかのを含むことができ、は、いずれかを削除することを匿名関数を使用した場合:二重引用符のシンボルは、それらの位置に常にある場合、これは動作しますそのシンボルの出現:助けを
a = {'15'; '16'; '"17"'; '30"'; '"""50"""'};
result = cellfun(@(x) str2double(x(x~='"')), a);
感謝。できます! – TYL
[regexp](http://mathworks.com/help/matlab/matlab_prog/regular-expressions.html)を使用すると少し速く、多分もっと頑丈なソリューションです。result = cellfun(@ str2double、regexp(a、 '\ d + \。?\ d *'、 'match')) ' – serial
@serial良いアイデア。しかし、正規表現は、負の数や '.123'(先行する' 0')のようなものがあれば修正されるでしょう。 –