2017-11-02 333 views
2

私はMATLABでおそらく単純な問題に悩まされています。私はこのようになります1x43セルアレイ(各値の前にスペースに注意)があります。セル配列をMATLABの数値配列に変換するにはどうすればよいですか?

labels = {' 1', ' 2', ' 3', ... , ' 43'}; 

をそして私は単純に次のようになります寸法1x43の数値ベクトルに変換したい:

labels_numeric = [1 2 3 ... 43]; 

誰でも私にこのための正しいトリックを示唆することができますか?

答えて

1

gnoviceの答えはこれまで最も簡単な解決策であります一般的に、各要素に何らかの変換を適用してセル配列を数値に変換する場合は、cellfunを使用します。たとえば、あなたがlength({'apple' 'orange' 'banana'})のためのMATLABを頼む場合は3を得るでしょうが、あなたは、配列内の各文字列の長さが必要な場合はあなたが行うことができます:

>> cellfun(@length, {'apple' 'orange' 'banana'}) 

ans = 

    5  6  6 

あなたが関数に無名関数、またはハンドルを使用することができますcellfunの引数として定義したので、変換は必要なだけ複雑になる可能性があります。

関数の結果がスカラー数値または論理値である限り、cellfunの出力は数値または論理配列になります。それ以外の場合は別のセル配列になります(サイズが異なる場合は、'UniformOutput', false引数の組を使用する必要があります)

関連する問題