フィルターのクリア

Fill new row of cell array after delimiter

2 ビュー (過去 30 日間)
Priya
Priya 2013 年 4 月 17 日
My cell array (1 X 11) is as follows:
a = {'A','B','C',';','D','E','F',';','1','2','3'}
Each character
I want a matlab program to recognize ';'(semicolon) as delimiter and whatever follows it comes to next row.
Desired output is a cell array of order 3 X 3
{ 'A','B','C'
'D','E','F'
'1','2','3' }

採用された回答

Jan
Jan 2013 年 4 月 17 日
a = {'A','B','C',';','D','E','F',';','1','2','3'};
sep = find(strcmp(a, ';'));
b = a;
b(sep) = [];
b = transpose(reshape(b, sep(1) - 1), []);
  2 件のコメント
Priya
Priya 2013 年 4 月 17 日
Hi Jan
It worked perfectly..
b = transpose(reshape(b, sep(1) - 1), [ ]);
But I did not understand the last line syntax. What does [ ] denotes ?
Jan
Jan 2013 年 4 月 17 日
It is a typo. The parenthesis must move:
b = transpose(reshape(b, sep(1) - 1, []));
Then RESHAPE changes the shape such, that the result has sep(1)-1 rows and the number of columns is determined automatically by the number of elements.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeNumeric Types についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by