55X1セルアレイがあります。各セルには、1X178の数値の文字列配列が含まれています。すべてのセルを二重配列に変換したいのですが、55X178の二重配列を形成するようにしています。
たとえば、55X1セルアレイを考えてみましょうdataCellOut = {each cell has a 1X178 string}
。使用できます:na=str2num(dataCellOut{1})
これにより、1X178の二重配列が出力されます。を使用してみましたがna=cellfun(@str2num, dataCellOut, 'UniformOutput', false)
、これは機能しません(エラー:「入力は文字ベクトルまたは文字列スカラーである必要があります」)。私はしばらくの間これに取り組んできましたが無駄になりました。
これが理にかなっていることを願っています。他に何か提供できることがあれば、遠慮なくお知らせください。前もって感謝します!
ドキュメントにstr2num
よると:
この
str2num
関数は、セル配列または非スカラー文字列配列を変換せず、周囲の間隔+
と-
演算子に敏感です。さらにstr2num
、eval
関数を使用します。これは、入力に関数名が含まれている場合に意図しない副作用を引き起こす可能性があります。これらの問題を回避するには、を使用しますstr2double
。
str2double
ただし、必要に応じて実行します。
X = str2double(str)
テキストをstr
倍精度値に変換します。[...]str
は、文字ベクトル、文字ベクトルのセル配列、または文字列配列にすることができます。[...]str
が[...]文字列配列の場合X
、はと同じサイズの数値配列ですstr
。
したがって、これは機能するはずです。
na = cellfun(@str2double, dataCellOut, 'UniformOutput', false);
na = cat(1,na{:});
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加