num2strでchar型になる理由
103 views (last 30 days)
Show older comments
data10 (10000*19 double)を文字列変換するため、num2strを使用しました。
しかし変換後のデータがdata11 (10000*52 char) となっています。
この後の操作としてはcontainsを使う為、このままではエラーとなってしまいます。
初心者質問で恐縮ですが、自力では解決出来なかった為皆さんのご意見をよろしくお願いいたします。
Accepted Answer
Atsushi Ueno
on 2 Feb 2023
Edited: Atsushi Ueno
on 2 Feb 2023
下記の事を知ると良いと思います。説明する事も難しいですが説明してみます。
- 二種類の異なる文字データ型がある
- 両者は次元が1段階異なる
型 スカラ ベクトル(1次元) 行列(2次元) cell 配列
char ’A' 'ABCDEF' ['ABCDEF'; 'GHIJKL'] {[n×m char] [o×p char] [q×r char]}
string "AB" ["AB","CD","EF"] ["AB","CD","EF"; "GH","IJ","KL"] {[n×m string] [o×p string] [q×r string] }
char 型の1文字は「文字スカラ」と呼ばれ、数値スカラと同じ次元を持ちます。
複数の文字は「文字ベクトル」と呼ばれる1次元配列データになります。
double('ABC') % 'A'のASCIIコードは65(0x41)
num2str(rand(3))
char 型で単語の区切りを持ったデータを実現するには cell 配列が必要です。
arrayfun(@num2str,rand(3),'uni',false)
A = ["AB","CD","EF"; "GH","IJ","KL"]
{A, A, A; A, A, A}
0 Comments
More Answers (1)
Hernia Baby
on 2 Feb 2023
Edited: Hernia Baby
on 2 Feb 2023
2 Comments
Hernia Baby
on 2 Feb 2023
Edited: Hernia Baby
on 2 Feb 2023
ちなみにstring型の登場は2016bからに対して、num2strは2006a以前のものです。
ですのでstringはまだ登場していません。
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!