2017-05-26 51 views
0

cellNameという名前のテーブルがあり、サイズは10000 * 1です。各エントリは、セル名の文字列です。各セル名の長さは異なります。 そして、それを10000要素のベクトルに強制したいと思います。どのように私はmatlabでそれを行うことができますか?それはrのように非常に簡単にする必要がありますが、私はmatlabでそのようなコマンドを見つけることができませんでした。テーブルの列をベクトルに変換する

OR:最初からcsvファイルから10000 * 1テーブルを読み込むためにreadtableを使用しました。 1つのベクトルとして10000 * 1のエントリーを直接読み取ることができれば幸いです。これは私が最初にやったことです。

cellName = readtable('cell.csv'); 
cellName=cellName(1:10000,1); 

ありがとうございました!

例:Aは5 * 1の表です。 A =リンゴ バナナ 梨 桃 スイカ

と私は5つの要素のベクトルに強制変換したい:A = [リンゴ、バナナ、梨、桃、スイカ]の代わりに、テーブル

+0

あなたが望むものの明確な例を提供してください –

+0

@saeedmasoomiが編集 –

答えて

0

キャラクターセル配列があなたの望むものなら、私はあなたの答えを持っているかもしれません。私はまた、access data in a tableの方法を読むことをお勧めします。

readtableは、成功するとMatlab tableデータ型を返します。 tableは、フィールド名として列名を使用してstructのようにアクセスできます。または、セル配列にアクセスする場合のように{}演算子でインデックス付けすることができます。 Aが戻りreadtableの値とあなたの

A = table({'apple','banana','pear','peach','watermelon'}','variableNames',{'cellName'}) 

です次に、あなたがあなたのセル配列を取得するために

cellName = A.cellName 

または

cellName = A{:,1} 

を呼び出すことができますどちらかと仮定すると、あなたの例では

、 。

+0

しかし、私はセル配列の代わりにベクトルが欲しいです。私はcell2mat(cellName)を試しても動作しません。代わりにベクトルを取得する任意のアイデア? –

+1

さまざまな長さの文字列を通常の数値ベクトルに格納することはできません。それらはセルデータ型に格納する必要があり、セルアクセス演算子 '{}'を持つ通常のベクトルのようにアクセスする必要があります。ところで、Nx1セルはMatlabのベクトルです。私の例では、isvector(cellName)でテストできます。 –

+0

s1 = {'ありがとう' so much '' Chang '}; s2 = {'あなたは正しいです' }; s3 = {s1 {:}、s2 {:}} –

関連する問題